【问题标题】:What do I need for the server side for a websocket?websocket的服务器端需要什么?
【发布时间】:2013-01-16 00:31:59
【问题描述】:

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

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

为了使用 websocket,我还需要什么?

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

【问题讨论】:

  • 不要将 PHP 用于 websockets。这并非不可能,但 PHP 并不是为此而设计的。

标签: php html sockets cordova websocket


【解决方案1】:

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

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

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

*编辑:

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

    ignore_user_abort(true);

    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 来打开和管理套接字。

【讨论】:

  • 我如何确定它是否有那个 dll?另外你是什么意思从命令行运行我的php?以及如何实现phpwebsocket?
  • 请注意,上面链接的 phpwebsocket 未维护,仅实现了 websocket 协议的旧草案,该协议仅适用于旧版本的 Safari。
猜你喜欢
  • 2013-06-11
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
  • 2019-04-21
相关资源
最近更新 更多