在XAMPP上的本地机器上一切正常。但是当我将文件上传到服务器后,它给出了这样的错误…
Fatal error: Uncaught exception 'ReactSocketConnectionException' with message 'Could not bind to tcp://0.0.0.0:8080: Address already in use' in
/home/sites/jemaottest.com/public_html/websocket/vendor/react/socket/src/Server.php:29 Stack trace: #0
/home/sites/jemaottest.com/public_html/websocket/vendor/cboden/ratchet/src/Ratchet/Server/IoServer.php(70): ReactSocketServer->listen(8080, '0.0.0.0') #1
/home/sites/jemaottest.com/public_html/websocket/bin/chat-server.php(17): RatchetServerIoServer::factory(Object(RatchetHttpHttpServer), 8080, '0.0.0.0') #2 {main} thrown in
/home/sites/jemaottest.com/public_html/websocket/vendor/react/socket/src/Server.php on line 29
当我运行chat-server.php文件时
我在棘轮的故障诊断页面上发现了一些东西,上面写着,
如果你想打开棘轮(不是在代理后)设置App的第三个参数为'0.0.0.0'。
我试过了,但是没有成功,
<?php
use RatchetServerIoServer;
use RatchetHttpHttpServer;
use RatchetWebSocketWsServer;
use MyAppChat;
require dirname(__DIR__).'/vendor/autoload.php';
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8080,
'0.0.0.0'
);
$server->run();
?>
仍然给出相同的错误。
我现在该怎么办?
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8282
);
更改端口并尝试…我的是工作正常后改变我的端口。另外,也不要忘记在websocket javascript类中更改端口。
var conn = new WebSocket('ws://yourdomain.com:8282');
我后来发现在共享服务器上不允许使用其他端口。
如果你在私有服务器上使用ssh访问,你可以尝试MarshallOfSound的解决方案。
或者如果你只是需要websocket作为一个服务,你可以使用push。
表示另一个进程正在8080端口上运行。可能是某种web服务器。
您可以使用
命令查看正在运行的内容lsof -i :8000
您可以停止已经使用该端口的进程。或者在不同的端口上运行Ratchet