【问题标题】:How to send Notifications to all clients connected in Cordova Socket IO from a single Nodejs Socket IO Server HTML如何从单个 Nodejs Socket IO Server HTML 向 Cordova Socket IO 中连接的所有客户端发送通知
【发布时间】:2015-01-02 06:21:12
【问题描述】:

我正在尝试从运行 Nodejs+Socket IO 的服务器向所有连接的客户端发送一条消息。

客户:

客户端是一个基于 Cordova 的通知显示屏幕,具有所有必要的 css + angularjs + Cordova Socket IO 编码,连接到服务器套接字 IO 并且只接受来自服务器的消息。

服务器:

服务器端是一个基于 Nodejs 的通知服务器,具有所有必要的 Expressjs + Socket IO 编码,连接到客户端的套接字 IO,并且只从服务器发送消息。服务器位于单独的 Ubuntu 服务器计算机中。

现在我已将服务器中的消息硬编码为“var msg = '嗨,这是通知!';”并且服务器通过套接字 io 将此消息提供给所有连接的客户端。如果我更改此消息当然会通知已连接的客户端。

我的要求是以管理员身份向所有客户发送不同于网页表单的通知。但是这个网页不应该对客户端可见,只有消息到达客户端。

请帮助任何想法!

【问题讨论】:

    标签: angularjs node.js cordova socket.io


    【解决方案1】:

    管理员是否从不同的网页发送消息?如果是这样,您可以从那里打开一个套接字连接并将消息广播到所有连接的套接字客户端

    socket.on('admMsg', function(data) {
        socket.broadcast.emit("admMsg", data.msg);
    });
    

    在管理页面客户端

    var socket = io.connect();
    function sendMsg() {
        var admMsg = $("#txtMsg").val();
        var msg = {
            msg: admMsg
        };
    
    socket.emit('admMsg', msg);
    
    }
    

    如果我遗漏了什么,请告诉我。

    【讨论】:

    • 谢谢你。但是,在我的情况下,我有一个 nodejs+socket IO 服务器,它只向管理员发送一个 html 表单文件,而不是向所有客户端发送一个 html 表单文件。连接到同一服务器的客户端只能接收管理员消息,而不是来自服务器的 html 表单。比如说。客户端访问服务器“var socket = io.connect(URL);”其中 URL = "xxx.xxx.xxx.xxx:8000";。请帮忙!
    • 我得到了答案。感谢您的回答。我的问题的解决方案是基于 url。我只使用了 socket.emit 来传输消息。它对我有用。在套接字 IO 中进行了大量研究后,我的项目已完成。谢谢。
    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    相关资源
    最近更新 更多