【问题标题】:Restarting socket.io on the clientside在客户端重启 socket.io
【发布时间】:2014-02-02 14:32:49
【问题描述】:

我正在使用 angularjs 构建一个单页应用程序 - 我将一个消息套接字发送到为来宾和用户打开的连接上,以及为特定用户打开的其他连接上。

因此,我需要套接字知道是为用户还是来宾初始化连接。由于我使用的是 Angular,因此在用户登录时我不会刷新页面,随后在刷新页面之前,用户不会收到他们的个人套接字 io 通知。 (信息太多?抱歉!)

简单问题 - 如何以编程方式(最好是从客户端)复制页面刷新(重新启动)时套接字 io 发生的情况。

试过了

restart: function(){
    socket.disconnect();
    window.socket = io.connect();
}

而且没用(似乎只是调用了on disconnect函数,并没有真正重启连接),似乎找不到其他解决方案!

【问题讨论】:

    标签: node.js angularjs socket.io


    【解决方案1】:

    我用WebSocket:

    以下是对我有用的 sn-ps 代码:

    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);
                }
    
            }
    

    希望对你有帮助,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 2012-01-31
      • 2018-11-27
      相关资源
      最近更新 更多