我在节点上创造了我的第一步,并编写了一个简单的聊天应用程序。每当nodejs获得一个新的套接字连接时,它就会保存在一个简单的数组中...我的问题是当一个连接被关闭时,因为他的引用仍然存在... 如何在发出任何连接之前检查连接是否处于活动状态事件给她,避免崩溃?
答案 0 :(得分:4)
我将使用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将优雅地处理心跳/断开连接,因此您无需担心额外内容,只需处理断开连接即可。我希望这对你有用:)。