Symfony 异步流的可能性
Posted
技术标签:
【中文标题】Symfony 异步流的可能性【英文标题】:Symfony asynchronous stream possibilities 【发布时间】:2013-03-22 22:57:29 【问题描述】:如何在不请求数据库的情况下获取客户端的信息?
这个例子是一个简单的聊天应用程序。两个客户端登录到一个流,比如聊天室。填写表格,通过 ajax 将信息发送到数据库。另一个无需请求即可获得它,例如从数据库中的事件侦听器推送。
这可能吗?
非常感谢。
【问题讨论】:
【参考方案1】:使用 php 实现非阻塞 I/O 是可能的,类似于 nodejs。见:http://reactphp.org/
如果您只是想制作一个实时聊天应用程序,我仍然会说 PHP 可能不是适合这项工作的工具。这是nodejs擅长的。
【讨论】:
【参考方案2】:HTTP 层不支持您希望完成的任务。您可以在this *** page 中找到更多相关信息。
您可能想要使用node.js 和socket.io。你也可以试试这个关于creating a chat system with node.js and socket.io的教程。
【讨论】:
【参考方案3】:您可以在像 Node.js 这样的服务器中传递内存中的信息。
聊天消息将使用 AJAX POST 上传并通过活动的 SSE 连接分发给其他客户端(您必须跟踪它们,例如在数组中)。
但是,如果没有数据库,您就没有消息的持久性。如果在客户端断开连接时丢失消息是可以接受的,那很好,但在聊天的情况下,用户可能希望在离线时收到积压的消息。
【讨论】:
以上是关于Symfony 异步流的可能性的主要内容,如果未能解决你的问题,请参考以下文章
Symfony/QueryBuilder:“myEntityAlias.myEntity.id”<- 可能吗?
Symfony 4,从控制器获取 .env 参数,是不是可能以及如何?
Doctrine|ORM|Symfony:可能与接口或多个实体有关系