Symfony捆绑包,允许用户互相发消息

时间:2018-10-04 18:09:32

标签: symfony notifications rabbitmq

我正在开发一个Web应用程序,该应用程序必须能够允许用户彼此发送消息。应该这样工作:当用户在线并且他们发送消息时,然后如果收件人在线,他们将在屏幕上收到通知,并且能够知道他们已经收到了消息(不必刷新页面)

消息应该是会话线程的一部分,而不是电子邮件(尽管通知未登录用户的一种方法是通过电子邮件发送给他们)

是否有捆绑软件可以做这种事情?或者我需要结合使用Symfony和JS来实时更新用户网页吗?

我已经看过RabbitMQ和FOSmessageBundle之类的东西,但是我还没有弄清楚它们如何使我将用户通知返回到开放用户会话。

对想法或指导表示赞赏。

2 个答案:

答案 0 :(得分:1)

首选的实时消息交换技术是Websocket

请让我介绍一下websocket的基本工作流程。

让我们以foo和bar为例。

聊天流程

  • foo建立与websocket server的连接
  • bar建立与websocket server的连接
  • foo在连接中发送hello消息
  • server收到消息并广播到bar's连接
  • Bar从连接有效负载中接收一条消息并显示它

客户端是javascript,您没有选择恕我直言

对于服务器端,您可以在PHP中完成

我建议您使用一个不太知名但很好的库,名为Woketo

节点JS环境更为常见,主要是因为节点js在异步方面比PHP更好。每个进程也使用更少的内存

随时问:)

答案 1 :(得分:0)

我最近建立了这样的功能,非常简单。我使用了具有发布/订阅功能并让您的websocket正常工作的捆绑软件。您唯一要做的就是将消息记录在数据库上(如果需要),并使每个发布/订阅指向彼此,以便消息从一个用户传递到另一个用户。

GOS RATCHET BUNDLE