我正在开发一个Web应用程序,该应用程序必须能够允许用户彼此发送消息。应该这样工作:当用户在线并且他们发送消息时,然后如果收件人在线,他们将在屏幕上收到通知,并且能够知道他们已经收到了消息(不必刷新页面)
消息应该是会话线程的一部分,而不是电子邮件(尽管通知未登录用户的一种方法是通过电子邮件发送给他们)
是否有捆绑软件可以做这种事情?或者我需要结合使用Symfony和JS来实时更新用户网页吗?
我已经看过RabbitMQ和FOSmessageBundle之类的东西,但是我还没有弄清楚它们如何使我将用户通知返回到开放用户会话。
对想法或指导表示赞赏。
答案 0 :(得分:1)
首选的实时消息交换技术是Websocket
请让我介绍一下websocket的基本工作流程。
让我们以foo和bar为例。
foo
建立与websocket server
的连接bar
建立与websocket server
的连接foo
在连接中发送hello
消息server
收到消息并广播到bar's
连接客户端是javascript,您没有选择恕我直言
对于服务器端,您可以在PHP中完成
我建议您使用一个不太知名但很好的库,名为Woketo。
节点JS环境更为常见,主要是因为节点js在异步方面比PHP更好。每个进程也使用更少的内存
随时问:)
答案 1 :(得分:0)
我最近建立了这样的功能,非常简单。我使用了具有发布/订阅功能并让您的websocket正常工作的捆绑软件。您唯一要做的就是将消息记录在数据库上(如果需要),并使每个发布/订阅指向彼此,以便消息从一个用户传递到另一个用户。