我甚至可以将消息回复给发送它的用户。但是,我要将消息广播给所有连接的用户。
根据我的理解,Erlang将为每个用户创建一个单独的进程。那么,在我拿回RabbitMQ的响应后,如何广播给所有连接的用户呢??
查看gproc项目:https://github.com/uwiger/gproc
它有一个pub/sub模式,您可以使用它来构建您提到的聊天。
摘自GPROC的Wiki:
subscribe(EventType) ->
%% Gproc notation: {p, l, Name} means {(p)roperty, (l)ocal, Name}
gproc:reg({p, l, {?MODULE, EventType}}).
notify(EventType, Msg) ->
Key = {?MODULE, EventType},
gproc:send({p, l, Key}, {self(), Key, Msg}).
问题内容: 我编写了用于向 所有 用户广播消息的代码: 请注意: 我没有任何用户参考,只有一个连接。 所有用户连接均存储在中。 目标 :假设Node.js服务器希望将消息发送到特定客户端(约翰)。NodeJs服务器如何知道John拥有哪个连接?Node.js服务器甚至都不认识John。它所看到的只是连接。 因此,我相信现在,我不应该仅通过用户连接来存储用户,而是需要存储一个对象,其中将包含和对象。
如标题所述,我想使用RabbitMQ向Websocket发送消息。使用AngularJS前端,我想从Websocket读取RabbitMQ消息,并将它们打印到控制台。原则上,我的代码似乎是可行的,尽管我不知道如何获得消息的实际(字符串)内容? 后端:为了创建Websocket并执行路由,我使用Spring Boot和Apache Camel:http://camel.Apache.org/Spri
问题内容: 这段代码一切正常(将其缩短以便更好地阅读)。 当向服务器发送请求时,服务器会立即响应他。但是,其他客户端看不到响应消息。 因此,我想进一步说明:当客户端向服务器发送请求时,服务器将响应所有客户端,以便所有客户端都能看到消息。 我怎样才能做到这一点?有任何示例或不错的入门教程吗? 提前致谢! 服务器: 问题答案: 您必须使用连接池将消息广播到所有连接。您可以将其用作教程/示例http:/
问题内容: 我想在用户连接到Spring WebSocket时向其发送消息, MyChannelInterception类为 通过这一点,我在收到新连接的用户,但该方法的信息中不将消息发送到新的登录用户。 问题答案: 我将创建侦听器并在内部使用。 顺便说一句,仅被调用一次(不适用于每个连接的用户)。因此,您必须处理拦截器中的发送消息。 尝试这样的事情: 我希望这个能帮上忙
首先,Cowboy和Websockets的文档确实很缺乏,但一般来说,一旦破译,使用它是非常好的。然后将这些信息从Erlang传输到Elixir是另一个步骤。多亏了7Stud的这篇文章,我得以让一个功能正常的websocket用于测试目的,但我无法让它同时监听和可选地发送消息。我认为这是因为receive阻塞了发送所需的线程,而这与websocket连接有内在的联系,所以它在等待接收时不能发送。也