如何远程或在服务器上运行 Ratchet?

Jim*_*mut 5 php websocket socket.io ratchet

在我的 XAMPP 本地计算机上一切正常。但是当我将文件上传到服务器后,它给出了这样的错误......

Fatal error: Uncaught exception 'React\Socket\ConnectionException' 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): React\Socket\Server->listen(8080, '0.0.0.0') #1 
/home/sites/jemaottest.com/public_html/websocket/bin/chat-server.php(17): Ratchet\Server\IoServer::factory(Object(Ratchet\Http\HttpServer), 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
Run Code Online (Sandbox Code Playgroud)

当我运行 chat-server.php 文件时。

我在 Ratchet 的故障排除页面上发现了一些内容,上面写着:

如果您想打开 Ratchet(不在代理后面),请将 App 的第三个参数设置为“0.0.0.0”。

我试过了,但没成功

<?php 
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;

require dirname(__DIR__).'/vendor/autoload.php';

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new Chat()
        )
    ),
    8080,
    '0.0.0.0'
);

$server->run();  
?>
Run Code Online (Sandbox Code Playgroud)

它仍然给出相同的错误。

我现在应该怎么做?

Mar*_*und 0

这意味着另一个进程正在端口 8080 上运行。可能是某种网络服务器。

您可以使用命令查看正在运行的内容

lsof -i :8000
Run Code Online (Sandbox Code Playgroud)

您可以停止已经使用该端口的进程。或者在不同的端口上运行 Ratchet。