uswebsocket.js 1.5 KB

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