当前位置: 首页 > 知识库问答 >
问题:

如何在websocket服务器上向特定用户发送消息

叶元凯
2023-03-14

我正在阅读websockets,在阅读了大量的教程和博客(主要是关于创建一个简单的聊天应用程序)之后,仍然有一个问题没有得到回答:

那么,是否不可能让一些外部应用程序或事件调用一些脚本(bash或php)来使用现有运行的websocket实例向一个或多个连接的浏览器(websocket客户端)发送/广播一些信息(文本)?

抱歉,如果这是一个愚蠢的问题,但我无法找到答案,通过阅读这些博客在网上。

谢谢你的澄清。

共有1个答案

龙景澄
2023-03-14

据我所知,您可以很容易地使用插座,例如:

// main.js
this.sockets = {};
myOtherModule.init(sockets);
io.on('connection', function(socket)) {
    sockets[socket.id] = socket;

    socket.on('command', myOtherModule.onSocketCommand);
}


// myOtherModule.js
this.init = function(sockets) {
    this.sockets = sockets;
}
this.onSocketCommand = function() {
    this.sockets['other.socket.id'].emit('message');
}

您可以将套接字保存在某个地方,不管它是在对象内还是在单个变量内。那么您就可以始终使用它来发出消息。

 类似资料:
  • 问题内容: 如何仅从服务器向特定用户发送websocket消息? 我的webapp具有spring安全设置,并使用websocket。我在尝试仅从服务器向特定用户发送消息时遇到棘手的问题。 通过阅读手册,我的理解是来自我们可以做的服务器 在客户端: 但是我永远无法调用订阅回调。我尝试了许多不同的方法,但是没有运气。 如果我将其发送到/ topic / reply,它可以工作,但所有其他已连接用户也

  • 如何仅将websocket消息从服务器发送给特定用户? 我的webapp具有Spring Security设置,并使用websocket。我在尝试只从服务器向特定用户发送消息时遇到了一个棘手的问题。 从阅读手册中我的理解是从服务器上我们可以做到的 在客户端: 但是我永远无法调用订阅回调。我尝试了许多不同的道路,但没有运气。 如果我将它发送到/topic/reply,它会工作,但所有其他连接的用户也

  • 我是新手。NET(C#)和WebSocket。。。我已经安装了VS2012和Windows Server 2012,并且已经启动并运行了WebSocket。我似乎无法从一个套接字接收消息并将其发送到另一个特定的套接字。唯一的选择似乎是向所有套接字广播消息。有没有一种方法可以将消息只发送给特定的用户?我希望聊天室主持人有机会拒绝不适当的帖子。

  • 我正在阅读《Spring in Action4》一书,以使用WebSocket上的STOMP消息传递。 假设,如下所示: 然后客户端使用以下JavaScript代码订阅目标: 则该消息将发送到目的地,如下所示: 那么,两个目的地和看起来是不同的,消息怎么可能到达客户端呢?

  • 我使用本教程中描述的spring设置了一个WebSocket:https://spring.io/guides/gs/messaging-stomp-websocket/。我需要的是我的服务器每5秒向特定用户发出一条消息。所以我首先做了这个: 而且起作用了。现在,为了只向特定用户发送消息,我更改了以下内容: 在WebSocketConfig.java中添加队列: 更改GreetingControl

  • 我很清楚,我必须使用完整功能的broker支持,将STOMP作为子协议。我们已经使用rabbit进行通信,所以它是显而易见的选择。 文档说明“STOMP broker中继还为每个连接的WebSocket客户端创建一个单独的TCP连接。”它是每个用户会话的单独连接,而不是每个用户。此外,当发送端位于同一应用程序(负责处理用户会话的应用程序)内时,每个会话都创建一个单独的队列。我认为,希望发送消息的其