以下错误导致错误TypeError: Cannot read property 'volatile' of undefined
(即map
没有使用volatile发射方法):
io = require("socket.io").listen(server)
map = io.of "/map"
temp = []
recieveDataFromSomewhere = (hit) ->
temp.push hit
setInterval ->
map.volatile.emit 'data', temp
temp = []
, 1000
我需要使用易失性消息,因为SocketIO跟踪收据的开销会导致延迟随着时间的推移而出现问题。
答案 0 :(得分:4)
不确定是否可以向命名空间发出易失性消息。尝试发送到命名空间上连接的套接字。
var io = require("socket.io").listen(server);
var map = io.of("/map");
map.on("connection", function(socket) {
socket.volatile.emit('data');
});
如果您想发送给所有连接的客户端,您可以执行以下操作:
Object.keys(io.nsps['/map'].connected).forEach(function(socketID) {
io.nsps['/map'].connected[socketID].volatile.emit('data')
});