我试图向所有套接字发送一个事件,但我收到了一个我不理解的错误。
代码非常简单:
io.on('connection', function(socket) {
[...]
socket.on('Security:ImOn', function() {
var id = socket.id.split('#')[1];
io.sockets.emit('Security:IsConnected', id);
});
[...]
});
此事件只是向所有套接字发送一个id,因此他们知道这个新套接字已打开。
系统尝试发出安全性时遇到的错误:IsConnected:
Missing error handler on `socket`.
TypeError: socket.packet is not a function
at D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io-adapter\index.js:143:30
at Encoder.encode (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io-adapter\node_modules\socket.io-parser\index.js:135:5)
at Adapter.broadcast (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io-adapter\index.js:121:16)
at Namespace.emit (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\namespace.js:219:18)
at Socket.<anonymous> (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-security\src\AuthenticationController.js:30:24)
at emitTwo (events.js:100:13)
at Socket.emit (events.js:185:7)
at Socket.onevent (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\socket.js:335:8)
at Socket.onpacket (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\socket.js:295:12)
at Client.ondecoded (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\client.js:193:14
Missing error handler on `socket`.
TypeError: socket.packet is not a function
at D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io-adapter\index.js:143:30
at Encoder.encode (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io-adapter\node_modules\socket.io-parser\index.js:135:5)
at Adapter.broadcast (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io-adapter\index.js:121:16)
at Namespace.emit (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\namespace.js:219:18)
at Socket.<anonymous> (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-security\src\AuthenticationController.js:30:24)
at emitTwo (events.js:100:13)
at Socket.emit (events.js:185:7)
at Socket.onevent (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\socket.js:335:8)
at Socket.onpacket (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\socket.js:295:12)
at Client.ondecoded (D:\Projets\Ecafa\ecafa-server\node_modules\ecafa-socket\node_modules\socket.io\lib\client.js:193:14)
我不明白为什么socket.io拖了我这个错误,io.sockets.emit()在文档中。
有人可以帮助我吗?
提前获取帮助和建议!
CAFA
答案 0 :(得分:1)
好的,我解决了这个问题。
我没有完全理解这个问题,但它正在发挥作用。
以下是我的理解:
我的代码没有完全整理。现在,我完全控制插座到我的控制器。之前,某些承诺可以在套接字上触发事件。
我的活动层次结构也没有完全整理。有时我试图在同一时间发射多个事件。现在,每个事件都会收到一个订单,并且只能点燃一个发票,这就是全部。
组织好的事件插座非常复杂,我想我必须了解每一个电话和响应,以及我在活动中的位置。
对不起,如果我的英语非常糟糕,那不是我的天生语言: - /
希望它会有所帮助。
CAFA