我试图在节点上执行脚本,并收到此错误: 也许socket.io版本有问题? 代码将鼠标指针发送到服务器,服务器将其发送给客户端。 所有的帮助都是恭维的,谢谢。
pi @ webserver~ / cursores $ sudo node server.js
/home/pi/cursores/node_modules/websocket.io/lib/protocols/hybi-16.js:39
.on('text', function (packet) {
^
TypeError: Object #<Receiver> has no method 'on'
at new WebSocket (/home/pi/cursores/node_modules/websocket.io/lib/protocols/hybi-16.js:39:6)
at Server.createClient (/home/pi/cursores/node_modules/websocket.io/lib/server.js:88:10)
at Server.handleUpgrade (/home/pi/cursores/node_modules/websocket.io/lib/server.js:60:21)
at HTTPServer.<anonymous> (/home/pi/cursores/node_modules/websocket.io/lib/websocket.io.js:92:8)
at HTTPServer.emit (events.js:106:17)
at Socket.socket.ondata (http.js:1990:14)
at TCP.onread (net.js:527:27)
脚本代码:
var express = require('express');
var wsio = require('websocket.io');
var app = express.createServer();
var ws = wsio.attach(app);
app.use(express.static('public'));
ws.on('connection',function(socket) {
console.log("Connection detected");
});
app.listen(3000);
console.log("Listening on port 3000");
答案 0 :(得分:0)
处理程序socket.on()中的作用域是在运行时可用而不是脚本时间。
可能是在处理程序中没有看到函数broadcast
。
您可能需要在调用它之前声明它。
您可能需要强制它具有全局范围。
也可以看看
http://jondavidjohn.com/javascript-closure-explained-using-events/