同时作为套接字服务器和客户端运行的PHP脚本

时间:2016-02-22 11:06:59

标签: php sockets laravel websocket guacamole

对于新项目,我需要实现远程桌面协议。需要保护远程地址,并且可能永远不会将其发送到客户端。经过大量的研究和一些测试后,我找到了Guacamole,它也有一个Java客户端。该项目被设计为API,因此我开始将一些Java客户端示例移植到PHP。

用例如下:

  • 用户登录我的服务(Laravel应用程序)
  • WebSocket连接建立到一个不断运行的PHP脚本(使用HOA\WebSocket
  • 授权后,需要为Guacamole Daemon建立TCP套接字
  • 通过WebSocket发出的命令需要定向到Guacamole Daemon,反之亦然

使复杂化的原因是应用程序需要能够同时为多个客户端提供服务。需要建立多个TCP套接字,并且需要同时管理多个WebSocket连接。

对于我的简单测试,我通过fsockopen打开套接字然后循环以等待数据。有了这个,我显然不能同时听多个套接字(至少是现实的),但我偶然发现了React Socket Client library

  

将此库视为fsockopen()stream_socket_client()的异步版本。

这听起来就像我需要的那样,但话又说回来,我正在使用HOA及其WeSocket服务器,它显然也在循环中运行(在调用WebsocketConnectionHandler->run()时)。

我是否应该使用React的套接字客户端,还是应该尝试使用HOA的Socket库(因为我已经使用了WebSocket)? React和HOA在它们的事件循环中是否兼容,那么我可以同时监听WebSocket客户端和TCP连接吗?

如果是这样,有人可以给我一些关于如何开始耦合这两个的提示或示例吗?谢谢!

0 个答案:

没有答案