node.js - 在客户端重新启动socket.io

标签 node.js angularjs socket.io

我正在使用 angularjs 构建一个单页应用程序 - 我向访客和用户以及其他特定用户打开的连接发出一个消息套接字。

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

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

尝试过这个

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

并且它不起作用(似乎只调用了断开连接函数,实际上并未重新启动连接),似乎找不到任何其他解决方案!

最佳答案

我使用了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);
            }

        }

希望对你有帮助

关于node.js - 在客户端重新启动socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507273/

相关文章:

javascript - 如何获取 `config` 对象中的 `$scope` 值?

socket.io - 在sails js socket.io中使用io.socket.get

javascript - Unity3d和Sockets.IO不会握手

javascript - ionic 框架中带有禁用复选框的 ionic 列表

javascript - 点对点套接字 IO

node.js - find() 方法可能超时 - mongoDb

node.js - 将应用程序从express 3更新到express 4,现在req.files返回未定义

node.js - sails.js - 我想在升 sails 后动态添加数据库连接

node.js - 如何从 grunt 任务访问 Waterline 模型?

javascript - 如何通过从指令内部双击来添加输入禁用状态的切换?