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 基础知识和计划的主要内容,如果未能解决你的问题,请参考以下文章