参考 https://socket.io/docs https://www.jianshu.com/p/a3e06ec1a3a0
Socket.IO不是WebSocket实现。尽管Socket.IO确实在可能的情况下使用WebSocket作为传输,但它在每个数据包中添加了一些元数据:需要消息确认时的数据包类型、命名空间和数据包id。这就是为什么WebSocket客户端无法成功连接到Socket.IO服务器,而Socket.IO客户端也无法连接到WebSocket服务器。[请参阅此处的协议规范](https://github.com/socketio/socket.io-protocol)。
服务端 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 io.on('connection' , function (socket ) { socket.emit('request' , ); socket.broadcast.emit('llc connected' ); io.emit('broadcast' , ); socket.on('disconnect' , function ( ) { io.emit('user disconnected' ); }); }); var chat = io .of('/chat' ) .on('connection' , function (socket ) { socket.emit('a message' , { that: 'only' , '/chat' : 'will get' }); chat.emit('a message' , { everyone: 'in' , '/chat' : 'will get' }); });
客户端 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 var socket = io();socket.on('request' , (msg)=>{ }) socket.on('connect' , function ( ) { socket.emit('ferret' , 'tobi' , 'woot' , function (data ) { console .log(data); }); }); socket.emit('reply' , {a :1 }) var chat = io.connect('http://localhost/chat' )