Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/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
WebSocket PHP服务器配置_Php_Apache_Websocket - Fatal编程技术网

WebSocket PHP服务器配置

WebSocket PHP服务器配置,php,apache,websocket,Php,Apache,Websocket,运行websocketphp服务器是否需要额外的(Apache、PHP、防火墙等)配置?我们是否需要通过ws协议显式允许请求?如果是,怎么做 我有带ISPConfig 3的Linux虚拟服务器。PHP脚本正在运行,但客户端没有收到服务器响应。为了让它对我起作用,我必须执行以下操作 使用git克隆存储库 编辑WebsocketDaemon.php,使第12行具有以下代码$this->pid=getmypid() 确保php可执行文件位于您的路径中 导航到cmd中的websocket\samples

运行
websocketphp服务器
是否需要额外的(Apache、PHP、防火墙等)配置?我们是否需要通过
ws
协议显式允许请求?如果是,怎么做


我有带ISPConfig 3的Linux虚拟服务器。PHP脚本正在运行,但客户端没有收到服务器响应。

为了让它对我起作用,我必须执行以下操作

使用git克隆存储库

编辑WebsocketDaemon.php,使第12行具有以下代码
$this->pid=getmypid()

确保php可执行文件位于您的路径中

导航到cmd中的
websocket\samples\chat\server
(必须将其从存储库移动到Web服务器),然后运行命令
php index.php start
,该命令将导致cmd暂停

启动web服务器(8000以外的任何端口,因为该端口是运行web套接字服务器的端口)

使用以下链接打开两个网页
http://localhost/websocket/samples/chat/client/
在任何支持web套接字的浏览器中

输入一条消息,它应该会工作(假设网页上说您最初已连接)


一句警告的话。我试图使用PHP套接字服务器制作一个游戏,但内存有问题。这是一篇关于它的帖子。

首先要检查并确保防火墙中的端口(看起来像8000)是打开的。默认情况下,在ISPConfig中,防火墙仅打开以下端口:

TCP:20,21,22,25,53,80110114344993995330680810811000

UDP:53


您可以通过登录并进入ISPConfig控制面板中的系统来查看这一点。然后在系统类别下的左侧菜单上查找防火墙。然后它应该向您展示您的防火墙规则。

首先,websockets是一种完全不同于HTTP的协议,因此不需要依赖Apache。您可能仍然使用Apache,以便将web浏览器指向某个位置,但基本上,当Javascript客户端代码连接到websocket服务器时,websocket服务器不应通过Apache运行

如果您真的必须将PHP用于websocket服务器,我建议您在命令行上运行PHP,并使其无限期地在后台运行。这一点很重要,因为实现websocket服务器的代码永远不会终止。您的websocket代码将侦听您选择的端口号。就我个人而言,我使用的是ports 9000+,但选择取决于您

我认为必须注意,您为websocket实现选择的语言可能与处理HTTP请求所使用的语言完全不同。个人而言,我使用PHP进行HTTP请求,但是我的WebSoSver服务器(它提供实时视频游戏)完全是用C++编写的。连接到websocket服务器的实际客户端代码是用Javascript编写的

由于各种原因,我认为您应该选择WebSoC服务器的C++或java,主要是因为这些语言中存在良好的支持库,如果需要,您将能够获得强的多线程能力。如果您想要这些语言的websocket服务器实现的建议,您可以问我,我会提到一些有用的方法


最后,我想补充的是,当我决定写一个基于WebSoCl的服务器时,我首先研究了在PHP中实现它的可能性,但是很快地决定C++将更好地满足我的需要。希望你也能切换到C++或java(或者可能是Ruby)。< /P>你使用什么PHP代码?当我这样做时,我不需要额外的配置。

Chat
示例当您运行命令
php index.php start
时,是否会收到消息?或者您的命令行暂停了吗?它输出:
PHP警告:PHP启动:无法加载动态库“/usr/lib/php5/20090626/mysqlnd.so”-/usr/lib/php5/20090626/mysqlnd.so:无法打开共享对象文件:在第0行的未知位置没有此类文件或目录
。然后停顿。谢谢你的
帮助
注意,Charles。除了“启动Web服务器”(Apache已经在运行)之外,我已经完成了所有步骤。经过长时间等待后,客户端以1006代码(“异常关闭”)关闭连接。感谢您提供有关内存不足异常的警告。已发出通知。:)