通过多个请求识别PHP套接字

时间:2014-08-30 08:52:07

标签: php sockets session udp client

我正在创建一个PHP api,它与我的Java SocketServer创建一个客户端套接字连接。这将用于聊天应用程序以用于学习目的。

所以我现在正在设置整个api,我有点想知道如何识别我的套接字。要存储套接字,我计划将其存储在$ _SESSION中。我已经读过socket ID不是识别它的好方法。

在会话中存储套接字的最佳方法是什么?我可以提供一些代码示例吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

你可以这样试试: 1)创建一个独立的php,它创建一个套接字客户端然后启动一个infitive循环: 2)在每个循环中它用token_id检查chat_table表示聊天会话 3)如果有来自用户的新消息,你的php会通过socket连接发布它们 4)usleep(200000); //

所以如果它可以接受你的主要php将通过exec()启动这些独立的php,如:

exec('php -f client.php '.escapeshellarg($sessionId).' > /dev/null &');

与这些争论者"&"这个过程将在后台处理你的主要PHP不会等待那一行。 在您的client.php中,您可以使用$ sessionId:

$sessionId = $_SERVER['argv'][1];

在预定义的到期时间之后,您的infitive循环client.php可以自行停止。表中没有任何活动,它会破坏该会话。

答案 1 :(得分:0)

你不能存储"在请求之间插入一个套接字,它就不会那样工作。

您可以做的是通过该套接字发送会话ID(或其他类似的令牌),以便接收端(您的Java应用程序)可以通过会话ID识别不同的客户端。