【问题标题】:What exactly entails setting up a PHP Websocket Server?设置 PHP Websocket 服务器究竟需要什么?
【发布时间】:2013-06-11 21:34:56
【问题描述】:

我现在开始接触 Web Sockets,并且已经成功使用了在线 websockets Pusher(不喜欢它)和 Scribble(很棒,但是停机太频繁了,因为它只有一个人在运行)。

我在我的本地主机上遵循了本教程http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/,效果很好!

我想问的是,如何从上述文件中设置 server.php 以在在线 webhost/共享服务器上作为 websocket 服务器运行?

或者我是否需要获得 VPS(如果需要,您推荐哪一个以及如何在那里设置 websocket 服务器,因为我以前从未真正使用过 VPS!)

非常感谢您阅读我的问题并回答。我已经阅读了此处有关套接字的所有其他问题/答案,但尚未找到上述问题的答案。希望我能在这里找到它!

【问题讨论】:

    标签: php websocket vps phpwebsocket


    【解决方案1】:

    这很棘手。

    您需要执行server.php 脚本并且它需要永远不会退出。如果您对共享服务器具有 SSH 访问权限,则可以像在屏幕截图上一样执行它,并使用 nohup 之类的东西使其作为后台任务运行:

    $ nohup php server.php
    nohup: ignoring input and appending output to `nohup.out'
    

    调用后(使用 SSH 连接),您可以退出,进程将继续运行。脚本打印的所有内容都将存储到nohup.out,您可以随时阅读。

    如果您没有 SSH 访问权限,并且实际执行 PHP 脚本的唯一方法是通过 Apache 作为页面请求的结果,那么您可以简单地使用浏览器转到该页面,并且永远不要关闭浏览器.但是总有一天会超时,您和 Apache 之间的连接将关闭,从而有效地停止 server.php 脚本的执行。

    在以前的情况下,许多共享主机不允许脚本无限期地运行。你会注意到server.php中有这一行:

    set_time_limit(0);
    

    这告诉 PHP 没有时间限制。如果宿主让 PHP 在safe mode 运行(很多人都这样做),那么你不能使用set_time_limit,时间限制可能是 30 秒甚至更短。

    所以是的,VPS 可能是您最好的选择。现在,我自己没有自己的,我不知道什么是好/坏的价格,但我会说HostGator 看起来不错。

    【讨论】:

    • 完美答案,正是我需要的!非常感谢:)
    • 但是请注意,当涉及到服务器应用程序时,社区对 PHP 的关注并不多。如果你还是要购买 VPS,你应该看看 socket.io (Node.js) 或 Autobahn (Python)。这些是已被证明运行良好的集成解决方案(服务器和客户端的匹配库)。当然,您可以从您的极简 PHP 服务器开始了解协议和“低级”方面。
    • 我所知道的最好的 PHP 解决方案是 Ratchet。有许多针对其他语言的自托管解决方案(请参阅realtime web tech guide)。通常对于 PHP,我建议使用托管解决方案。
    • 感谢提供该链接,leggetter。我会调查一下。虽然我只是想问一下,如果我已经编写了自己的服务器端代码(用 PHP 编写)并在本地主机上执行,我可以将其托管在 VPS 上并从客户端连接到它吗?
    猜你喜欢
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2013-11-06
    相关资源
    最近更新 更多