【发布时间】:2014-10-24 04:45:06
【问题描述】:
我正在制作一个 PHP api,它创建一个与我的 Java SocketServer 的客户端套接字连接。这将用于用于学习目的的聊天应用程序。
所以我现在正在设置整个 api,我有点想知道我应该如何识别我的套接字。为了存储套接字,我打算将它存储在 $_SESSION 中。我读过套接字 id 不是识别它的好方法。
在会话中存储套接字的最佳方式是什么?我可以提供一些代码示例吗?
提前致谢!
【问题讨论】:
-
嘿@Timon,除非此处缺少某些信息,否则您将无法在 $_SESSION 中存储套接字 - 套接字是像文件句柄一样的资源。由于不同的请求可能由不同的工作进程(不能共享句柄)处理,因此您不能存储这些资源以供以后使用。如果您需要在请求之间保留身份,将 PHP 会话 ID 转发到您的 Java 服务器可能是一种更好的方法,这样即使套接字不同,您也可以恢复会话状态
-
@Timon 为什么不将一些盐(唯一 ID)绑定到您的套接字 ID,然后在其上使用一些加密技术。这将保存您的套接字 ID,您可以轻松识别它。希望它对您有用
-
如果不是很难(实施),您将无法在不同的编程平台之间共享会话。我建议您使用消息队列系统,例如Ratchet 来进行消息的推送和拉取。顺便说一句,this question here 拥有开箱即用的 laravel 创建一个新的 PHP 聊天应用程序所需的一切
标签: php sockets session udp client