1
我在节点上给我的第一步,并写一个简单的聊天应用程序。每当nodejs获取一个新的套接字连接时,它都会保存在一个简单的数组中......我的问题是连接关闭时,因为他的引用仍然存在...... 如何在发送任何事件之前检查连接是否处于活动状态她,避免崩溃?socket.io,我如何知道套接字是否保持活动状态?
我在节点上给我的第一步,并写一个简单的聊天应用程序。每当nodejs获取一个新的套接字连接时,它都会保存在一个简单的数组中......我的问题是连接关闭时,因为他的引用仍然存在...... 如何在发送任何事件之前检查连接是否处于活动状态她,避免崩溃?socket.io,我如何知道套接字是否保持活动状态?
我打算使用来自socket.io网站的示例。
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
var tweets = setInterval(function() {
getBieberTweet(function (tweet) {
socket.volatile.emit('bieber tweet', tweet);
});
}, 100);
socket.on('disconnect', function() {
clearInterval(tweets);
});
});
在连接它通过一个插座变量。这对每个客户端都是唯一的,这就是为什么socket.emit仅发送给一个客户端,或者为什么广播将发送给除发送者之外的所有人。
socket.on('disconnect', function() {
clearInterval(tweets);
});
注意如何清除间隔?再次,这是客户特定的,因为它是发生在一个特定的“窝”,所以你可以这样做:
socket.on('disconnect', function() {
socket.broadcast.emit('disconnected', {user: "film42", status: "disconnected from server"});
});
Socket.IO将处理心跳/断开优雅,所以你不必担心演员,只是处理断开连接。我希望这对你有用:)。
谢谢!现在我看得更清楚了! –