Ratchet PHP Websocket 持久化 Ubuntu 16.04
Posted
技术标签:
【中文标题】Ratchet PHP Websocket 持久化 Ubuntu 16.04【英文标题】:Ratchet PHP Websocket persistent Ubuntu 16.04 【发布时间】:2017-04-25 14:15:09 【问题描述】:我的 websocket 文件:
<?php
require __DIR__ . '/../../../vendor/autoload.php';
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
require 'chat.php';
// Run the server application through the WebSocket protocol on port 8080
$app = new Ratchet\App("localhost", 8080, '0.0.0.0', $loop);
$app->route('/chat', new Chat, array('*'));
$app->run();
我按照本指南设置我的 websocket: https://blog.samuel.ninja/the-tutorial-for-php-websockets-that-i-wish-had-existed/
它在本地使用 php socket.php
工作(在 Windows 10 上使用 xampp 测试)。
当我尝试在我的虚拟机 (ubuntu 16.04) 上部署时,出现此错误:
WebSocket connection to 'ws://localhost:8080/chat?id=NDY=&group=43,60' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
PS:我尝试使用php /var/www/path-to-websocket/socket.php
启动websocket
我还需要使用服务而不是命令行来启动它,但是描述的方法不起作用
【问题讨论】:
【参考方案1】:尝试使用SERVERNAME
代替本地主机。
来自 PHP RATCHET:
Run your website and WebSocket server on the same machine using port 8080 for WebSockets and take the chance client proxies won't block traffic
Run your WebSocket server on its own server on port 80 under a subdomain (sock.example.com)
Put a reverse proxy (HAProxy or Varnish) in front of your webserver and WebSocket server
来源:http://socketo.me/docs/deploy
【讨论】:
以上是关于Ratchet PHP Websocket 持久化 Ubuntu 16.04的主要内容,如果未能解决你的问题,请参考以下文章
Javascript 无法连接到 PHP Ratchet WebSocket 服务器
使用 Ratchet for PHP 通过 WebSocket 流式传输二进制数据
如何从 PHP Ratchet WebSocket 拒绝未经身份验证的用户?
React/ZMQ/Ratchet - Websocket 服务器响应