类型错误:对象 #<接收器> 没有方法“on”
TypeError: Object #<Receiver> has no method 'on'
我试图在节点上执行脚本,并收到此错误:也许 socket.io 版本有问题?代码将鼠标坐标发送到服务器,服务器将其发送到客户端。所有的帮助将不胜感激,谢谢。
pi@webserver ~/cursores $ sudo 节点服务器.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");
handler socket.on() 中的范围是在运行时而不是脚本时可用的范围。可能是在处理程序中看不到函数broadcast
。您可能需要在调用它之前声明它。您可能需要强制它具有全局范围。参见http://jondavidjohn.com/javascript-closure-explained-using-events/
相关文章:
- 为什么dijit.form.Select有方法setStore(),而dijit.fform.FilteringSele
- 主干.js未捕获的类型错误:对象 [对象数组] 没有方法“on”
- SCRIPT438:对象不支持属性或方法“on”
- 类型错误:对象 #<接收器> 没有方法“on”
- NodeJS 错误与 connect-busboy,“类型错误:无法调用未定义的方法'on'”
- JSPM-是否有方法或需要对捆绑文件进行版本化
- 当用户试图删除indexedDB数据库时,是否有方法执行函数
- Box2dWeb中是否有方法将对象的位置.x输出到console.log()
- 对动态(AJAX)加载的数据执行jQuery方法.on()
- jQuery-for.each调用包含方法.on的函数
- 是否有方法在WebCrypto API中获取RSA密钥的组件
- 是否有方法可以快速确定浏览器是否支持启用了cors的图像而不会污染浏览器?
- 是否有方法以编程方式确定私钥是用DER还是PEM编码的?
- 在反序列化JSON对象时,是否有方法将属性名称转换为小写?
- 是否有方法检查特定点(X,Y)是否在SVG元素中
- 是否有方法减少相同if语句的代码
- 我得到这个消息"Object [Object Object]没有方法'on'
- 在babel编译时是否有方法注入或忽略全局变量?
- Node.js query:是否有方法提示用户自定义大小的数组
- 在检查字符串时,是否有方法包含单词变体(过去时,动名词)