socket.io – socket.send不传递消息

我正在尝试在前端和后端之间传递文本。 我的node.js代码如下所示:

 var express = require('express'); var app = express(); var io = require('socket.io').listen(8081); app.use(express.static('public')); var server = app.listen(3000, function () { var port = server.address().port; console.log('Example app listening at', port); io.sockets.on('message', function (message) { console.log(message); }); }); 

标记:

 <html> <body> <script type="text/javascript" src="https://cdn.socket.io/socket.io-1.3.7.js"></script> <script type="text/javascript"> var socket = io.connect('http://localhost:8081'); socket.on('connection', function (socket) { socket.send('hi'); }); </script> </body> </html> 

我对socket.io很新,并且socket.send('hi')应该是console.log到你的节点控制台。 有什么我失踪(是的,知识产权是正确的)? 没有JS控制台错误。

       

网上收集的解决方案 "socket.io – socket.send不传递消息"

我不认为你可以使用io.sockets.on – 你只能用它来发送连接的套接字。

另外,对于前端,socket连接的事件是connectconnection是创build新连接时的服务器端事件。

最后, socket也不作为parameter passing给前端的事件。

 // server io.on('connection', socket => socket.on('message', msg => console.log(msg))); // client socket.on('connect', () => socket.send('hi'));