我正在使用angularjs构建一个单页应用程序 - 我将一个消息套接字发送到为访客和用户打开的连接,以及其他特定用户。
因此我需要套接字来知道是否初始化用户或来宾的连接。由于我正在使用角度,我不会在用户登录时刷新页面,随后在页面刷新之后,用户不会收到他们的个人套接字通知。 (太多信息?道歉!)
简单问题 - 如何以编程方式(最好是从客户端)复制socket io在页面刷新(重新启动)上发生的情况。
试过这个
restart: function(){
socket.disconnect();
window.socket = io.connect();
}
并且它没有工作(只显示调用on disconnect函数,实际上没有重启连接),似乎找不到任何其他解决方案!
答案 0 :(得分:0)
我使用WebSocket
:
以下是适用于我的代码片段:
function startSocket()
{
if ("WebSocket" in window)
{
ws = new WebSocket("%%WEBSOCKET_URL%%");
// Called when the websocket is opened
ws.onopen = function()
{
/* .... */
};
// Called when the websocket receives data
ws.onmessage = function(evt)
{
/* .... */
//dataTableDefault.push(evt.data);
};
// Called when the websocket is closed
ws.onclose = function() {
};
}
else
{
alert("Browser doesn't support WebSockets!");
}
}
function stopSocket()
{
try {
ws.onopen = null;
ws.onmessage = null;
ws.onclose = null;
ws.onerror = null;
ws.close();
} catch (e) {
console.log('try/catch around location update'+e);
}
}
希望它会有所帮助,