node之websocket

文件结构:

server代码:

var http = require('http');
var fs = require('fs');
var websocket = require('socket.io');
var socketIo = websocket.listen(80);

var server = http.createServer(function(request,response){
    fs.readFile(__dirname+request.url,function(err,data){ 
      response.setHeader("Server","TestName");     
      response.setHeader("Expires", 'Wed, 28 May 2017 09:54:57 GMT');
      response.setHeader("Cache-Control", "max-age=10000000000");
      //ajax访问时,没它会报错
      response.setHeader("Access-Control-Allow-Origin", "*");
      //返回类型
      response.writeHead(200, {'Content-Type': 'text/html'}); 
      response.end(data); 
    });   
});

socketIo.on('connection', function(socket){
    console.log('a user connected');
    socket.on("disconnect", function() {
        console.log("a user go out");
    });
    socket.on("msgFromBroswer", function(obj) {
        socketIo.emit("msgFromServer", obj);
        console.log(obj);
        console.log(obj.msg);
    });
});

server.listen(3000);
console.log('listening port 3000');

index.html代码:

<html>
<head>
  <script src="http://cdn.bootcss.com/socket.io/2.0.1/socket.io.js"></script>
</head>
<body>
  websocket
</body>
</html>

<script>
    var socket = io.connect('ws://127.0.0.1:80');
    socket.emit("msgFromBroswer", {"name" : navigator.userAgent, "msg" : "hello world"});
    socket.on("msgFromServer", function(obj) {
        console.log(obj);
    });
</script>

PS:别忘了初始化引用的模块

原文地址:https://www.cnblogs.com/wangxuehao/p/6913300.html