对于websocket,我需要什么样的服务器端?

时间:2013-01-31 19:33:58

标签: php html5 sockets cordova websocket

我正在使用以下js插件,它允许我在Android和iOS上使用带有html5的应用程序的WebSockets(在我的情况下通过phonegap)。

https://github.com/FreakDev/PhoneGap-Android-HTML5-WebSocket

使用websocket还需要什么?

我有一个带有安装了PHP和MySQL的bluehost的基本服务器..我需要做什么?

1 个答案:

答案 0 :(得分:2)

首先你可以使用像这样的库: http://code.google.com/p/phpwebsocket/

其次,您的主机必须允许您创建套接字。这意味着PHP必须启用php_sockets.dll(Win)或sockets.so(Linux)扩展以及来自服务器的转发端口。 此外,你需要从推荐行运行你的PHP或以某种方式保持它永远活着。

就像在PHP中创建一个普通的套接字一样。

*编辑:

  1. WebSockets只是某种普通的套接字。在websocket中,您可以连接到正在侦听连接然后与之通信的端点。就像普通的套接字一样,但协议上有很多差异,而且有更多限制。为此,您需要一个脚本或应用程序来运行,并处理来自网页的所有连接。但是一个php文件将在请求结束后结束。为了保持php文件永远运行,你需要从commend行运行它,这意味着你需要shell访问,或者你可以使用这段代码永远运行你的php脚本:(但你必须考虑一种机制来调用它只有一次)

    ignore_user_abort(真);

    ini_set('max_execution_time',0);

    参数或者set_time_limit(0);

  2. 你可以测试一下。如果您的应用程序失败并显示有关不知道socket_connect或socket_bind等函数的错误消息,那么您没有php的套接字扩展名。

  3. 这是用于下载的phpwebsocket文件: http://phpwebsocket.googlecode.com/svn/trunk/%20phpwebsocket/ 这里也有一个例子。

  4. 正如“Tom van der Woerdt”所说PHP不是为进行套接字编程而设计的。使用非脚本语言并使用专用服务器或至少一个vps来打开和管理套接字。