我必须使用网络套接字构建一个多层游戏。为此,我有一个与Apache共享的Web服务器。浏览器不是我只为现代浏览器构建的问题。
我尝试了一些示例PHP
和web-socket源代码,但没有运气。
我需要做什么?
以及如何启用PHP socket_create
功能?已在php_sockets
中启用php.ini
扩展,并且扩展目录中也存在php_sockets.dll
。
当我调用socket_create
函数时,php说这个函数是未定义的。
感谢任何形式的帮助。 感谢
答案 0 :(得分:1)
似乎命令提示符正在为PHP使用不同的配置文件。
Apache(或来自WAMP的界面)使用位于以下位置的php.ini:
[WAMP_DIRECTORY]\bin\apache\Apache2.2.21\bin\php.ini
如果您打开此文件,您可能会注意到line extension = php_sockets.dll已被注释掉。
不幸的是,CLI或命令行界面使用的是另一个配置文件,该文件位于:
[WAMP_DIRECTORY]\bin\php\php5.3.8\php.ini
要解决此问题,您应该注释掉行extension = php_sockets.dll并保存。之后运行程序以查看websockets是否已经启动并正常工作。
答案 1 :(得分:1)
如果您可以在浏览器中保证WebSocket支持,请使用Ratchet。它不会在Apache中运行,而是作为一个单独的进程运行。
还有其他选项 - 请参阅realtime web tech guide。
有关WebSocket + PHP的问题在SO上被多次询问过。我建议在使用Apache,PHP + WebSocket时搜索最佳解决方案和已知问题。这里有一些很好的启动问题,答案中还有一些额外的链接: