Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在脚本完成执行后使套接字保持活动状态_Php_Facebook_Sockets_Fsockopen - Fatal编程技术网

Php 如何在脚本完成执行后使套接字保持活动状态

Php 如何在脚本完成执行后使套接字保持活动状态,php,facebook,sockets,fsockopen,Php,Facebook,Sockets,Fsockopen,我已经编写了一个php脚本,它通过tcp套接字连接到facebook聊天。我的问题是: 如何在php脚本结束时保持套接字活动?我想要其他php文件通过这个套接字与facebook XMPP服务器通信?我曾尝试将套接字保存为会话变量,但没有成功 根据一些论坛讨论,我尝试使用pfsockopen而不是socket_create。但当我调用pfsockopen函数时,总是收到失败消息 有人知道如何解决这个问题吗 谢谢 您需要一个独立的守护进程来执行此操作。您不能在不同的PHP脚本之间共享套接字。@se

我已经编写了一个php脚本,它通过tcp套接字连接到facebook聊天。我的问题是:

  • 如何在php脚本结束时保持套接字活动?我想要其他php文件通过这个套接字与facebook XMPP服务器通信?我曾尝试将套接字保存为会话变量,但没有成功

  • 根据一些论坛讨论,我尝试使用pfsockopen而不是socket_create。但当我调用pfsockopen函数时,总是收到失败消息

  • 有人知道如何解决这个问题吗


    谢谢

    您需要一个独立的守护进程来执行此操作。

    您不能在不同的PHP脚本之间共享套接字。@seriyPS的建议很有意义-创建一个PHP脚本,该脚本:

    • 永无止境
    • 打开FB聊天的套接字
    • 在另一个插座上收听

    然后您的PHP脚本可以打开该“守护进程”PHP脚本的套接字,发送消息,守护进程将其发送到FB并返回FB响应

    @Darhazer:在你的解决方案中,我真的看不出问题是如何解决的。我猜“stella”希望避免为每个客户端请求建立连接(创建套接字)。当然“守护进程”可能会打开FB的套接字,但是PHP脚本现在仍然需要连接到deamon(没有解决问题)?我是不是遗漏了什么?我有一个客户有同样的问题,我正在研究解决方案。有没有一种简单的方法可以避免在PHP中打开套接字?但是如果您有一个独立的守护进程,其他脚本会通过IPC与守护进程通信吗?PHP脚本是否在相同的内存空间中运行,以便直接进行函数调用,或者我们需要IPC?我是PHP新手,我发现为守护进程建立一个新的套接字(如上所述)是一个可怕的解决方案?为此,您需要一些IPC。例如,这可以是TCP/UDP/Unix套接字。Php守护程序和Web服务器脚本在单独的地址空间上运行。我可以建议将smth作为守护进程部分,并将
    序列化为IPC协议,这就是我的想法。我可以让我的守护进程将JSON就绪的数据写入/proc FS,然后写入PHPWeb脚本,而不是花时间打开deamon的套接字,它可以简单地从/proc读取数据并将其流回。我的猜测是,从/proc FS读取数据要比打开套接字并读取相同的流快得多。但在全面实施之前,我会尝试证明这一理论。