1
我一直在使用socketIO进行大量测试,并且遇到了处理应用程序仅处于脱机状态的情况。该文档没有提供有关此问题的真正见解。如何处理应用程序未运行时的socketIO
所以,如果我跑我的网站和应用程序节点根本就没有运行,执行console.log给出:
GET http://[url]:[port]/socket.io/socket.io.js
Uncaught ReferenceError: io is not defined
这并不奇怪,怎么过什么,我不明白是如何处理这些错误,并简单地让脚本尝试重新连接,直到它终于重新连接(如果曾经)。
我的剧本是这样的:
<script src="http://[url]:[port]/socket.io/socket.io.js"></script>
<script>
windows.onload = function()
{
socketio = io.connect("http://[url]:[port]");
socketio.on('connecting', function() {
console.log('trying to connect');
});
socketio.on('connect', function() {
console.log('connected');
});
}
</script>
有没有一种方法来处理这类问题?
如果我添加一个新的
有几个事件可以绑定到。
对于暴露事件的完整列表,点击这里:exposed socket.io events
编辑
啊,我很抱歉。我误解了你的问题。我以为你想在socket服务器脱机时处理。如果你想处理无法获取socket.io客户端脚本,也许你可以检查
socket
是否为null或未定义,并处理这种想法。然后还会启动一个setTimeout
函数,在等待期过后尝试异步加载脚本,然后检查socket
是否仍未定义或为空。或者,如其他答案所示,将socket.io客户端库与您的HTML页面的其余部分一起打包。来源
2013-12-23 21:07:43 zero298
如果节点应用程序未运行,我不相信它会首先收到'connect_failed' .. – Sir
啊,我很抱歉。我误解了你的问题。你是对的,你没有'套接字'来调用开始的事件。正如另一个答案所说,将客户端库打包到HTML页面将会是一个更好的主意。 – zero298