我知道这个错误信息已经被问了很多问题,但我还没有find一个匹配我的情况。 下面我向你展示服务器(node.js)和客户端代码。 包含的socket.io.js文件绝对存在。
如果您没有听到正确的端口,则会出现此问题。
服务器
var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });
客户
<script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost:80'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script>
如果服务器和客户端没有监听同一个端口,那么你将无法加载socket.io库,io将会是未定义的。 我猜你没有在连接到不同的域时在客户端上指定端口。 如果使用express,端口号应该是Express默认监听的端口号。