websockets 和 PHP 基础知识和计划

Posted

技术标签:

【中文标题】websockets 和 PHP 基础知识和计划【英文标题】:websockets and PHP basics and initiatives 【发布时间】:2013-04-30 11:24:28 【问题描述】:

我必须使用网络套接字构建一个多层游戏。为此,我有一个与 Apache 共享的 Web 服务器。浏览器不是我只为现代浏览器构建的问题。 我尝试了几个示例 php 和 web-socket 源代码,但没有运气。 我需要做什么? 以及如何启用 PHP socket_create 功能?已经在php.ini 中启用了php_sockets 扩展,并且php_sockets.dll 也存在于扩展目录中。 当我调用socket_create 函数时,php 说这个函数是未定义的。

感谢任何形式的帮助。 谢谢

【问题讨论】:

当我查看 phpInfo 时套接字支持已启用 【参考方案1】:

似乎命令提示符使用了不同的 PHP 配置文件。

Apache(或来自 WAMP 的界面)使用位于以下位置的 php.ini:

 [WAMP_DIRECTORY]\bin\apache\Apache2.2.21\bin\php.ini

如果你打开这个文件,你可能会注意到行extension=php_sockets.dll 已经被注释掉了。

很遗憾,CLI 或命令行界面正在使用不同的配置文件,该文件位于:

 [WAMP_DIRECTORY]\bin\php\php5.3.8\php.ini

为了解决它,你应该注释掉行extension=php_sockets.dll 并保存它。之后运行程序,看看 websockets 是否已经启动并工作了。

【讨论】:

【参考方案2】:

如果您可以保证浏览器支持 WebSocket,请使用Ratchet。它不会在 Apache 中运行,而是作为一个单独的进程运行。

还有其他可用选项 - 请参阅realtime web tech guide。

关于 WebSocket + PHP 的问题已经在 SO 上被问过很多次了。我建议在使用 Apache、PHP + WebSocket 时搜索最佳解决方案和已知问题。这里有几个很好的开始问题,答案中有一些附加链接:

Is native PHP support for Web Sockets available? Efficient reloading data / pushing data from server to client

【讨论】:

以上是关于websockets 和 PHP 基础知识和计划的主要内容,如果未能解决你的问题,请参考以下文章

如何在Heroku免费计划上部署laravel-websockets服务器?

机器学习强基计划0-2:什么是机器学习?和AI有什么关系?

PHP中没有守护程序的WebSocket服务器?

webSocket (转载)

机器学习强基计划0-1:教程导读

机器学习强基计划8-1:图解主成分分析PCA算法(附Python实现)