【问题标题】:PHP communicate between separate user sessions?PHP在不同的用户会话之间进行通信?
【发布时间】:2013-07-28 08:18:51
【问题描述】:

我想知道是否可以在 PHP 中的不同会话之间进行交互?我问这个是因为我想限制 MySQL 查询的数量,因为很多事情都是动态的,我想找到方法来减少用户之间的交互对 MySQL 的痛苦。

一个例子是聊天。在用户自己的会话中以某种方式共享聊天会非常有用,而不必轮询 MySQL 以获取新消息等。如果用户 A 写了一条消息并将其插入到用户 B 会话中,我可以立即在我的长轮询循环中获取它,而无需尽可能频繁地骚扰 MySQL。

【问题讨论】:

  • “我可以立即在我的长轮询循环中获取它,而无需尽可能频繁地骚扰 MySQL” --- “骚扰” mysql 通常“便宜”,并且会话尽可能轻可能
  • 真的吗?我一直认为会话本身就可以工作并且不会对系统施加太大压力。我已将所有当前用户数据以及翻译等放入每个会话,大小为 40KB - 我认为这不是很多?..
  • 会话必须对每个请求进行序列化/反序列化,而对于其他数据源,您可以实施一些缓存策略等。40kb 是很多
  • OK.. 那么您对翻译有何建议?他们占据了大部分会话,但我在哪里存储它?..还有关于问题本身 - 是否可以读/写其他会话?
  • 对于聊天,有一些选项可用于流式传输而无需任何数据库参与。

标签: php session long-polling


【解决方案1】:

如果您真的担心 MySQL 资源,您可以将数据写入服务器上的临时文件,但我很确定这将导致性能不佳,因为需要打开、读取、写入大量文件等。

更好的解决方案可能是使用 node.js 进行设置。这样你就可以设置一个实时的 javascript 聊天。请参阅:http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/ 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 2018-01-29
    • 2012-04-30
    相关资源
    最近更新 更多