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:可能与接口或多个实体有关系

Symfony2 表单 > 实体字段类型 > 查询构建器 > 可能的子选择?

实时消息协议流的所有可能容器

如何在 Symfony 学说实体中导入 Excelsheets