//引用http和socket.io模块 var us = {} //包含http模块 us.http = require('http'); //包含socket.io模块 var socketio = require('socket.io'); //创建httpserver us.app = us.http.createServer(function (req, res) {}); //开启888端口,服务开始监听 //us.app.listen(888); const hostname="127.0.0.1"; const port=888; us.app.listen(port, hostname); console.log(`Server running at http://${hostname}:${port}/`); //也可以采用下面的写法,但代码更多 /*us.app.listen(port, hostname, function() { console.log(`Server running at http://${hostname}:${port}/`); });*/ //输出调试信息 //console.log("Http Server start at 888"); //socketio开始监听http请求 us.socketio = socketio.listen(us.app); //webSocket协议握手成功 ////'connection' 是socket.io 保留的.不能错,结果在变量socket中 us.socketio.sockets.on('connection', function (socket) { //前端javascript使用socket.emit('msg', { msg: str }); //字符串msg是自己定义的, //socket.on('msg',function (data) {}); 后端需要用msg接收前端发送来的消息。'msg'需要和客户端发送时定义的事件名相同。 socket.on('msg', function (data) { console.log('Get a msg from client ...'); //console.log(data); //向客户端javascript发送广播,注意:这里广播消息为bcast, //则前端javascript用socket.on('bcast', function (r) {alert(r); });接收消息 socket.broadcast.emit('bcast', data); }); //console.log("WebSocket connect ok...."); })