2015-09-25 59 views
2

一切工作正常我的本地机器上的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 

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

我发现棘轮的疑难解答网页,其中说的东西,

如果你想开冲高(不使用代理)设置应用程序“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(); 
?> 

它仍然给了同样的错误。

现在该怎么办?

+0

任何人,任何提示? – Jem

+0

您是否找到解决此问题的解决方案?我有同样的问题,我什么都没有找到 – Rey

回答

0

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

您可以找出与命令

lsof -i :8000 

运行时,您可以使用已有的端口停止进程。或者在另一个端口上运行棘轮。

+0

我试了很多其他的端口,但它仍然给了同样的错误。 我必须给服务器的IP地址代替'0.0.0.0'。 (我很困惑,nothings工作) – Jem

1

我后来发现在共享服务器上不允许使用其他端口。

如果您使用ssh访问私有服务器,则可以尝试使用MarshallOfSound的解决方案。

或者如果你只是需要websocket作为服务,你可以使用像Pusher这样的东西。

1
$server = IoServer::factory(
new HttpServer(
    new WsServer(
     new Chat() 
    ) 
), 
8282 

);

只需更改端口,然后尝试..我的端口更改后工作正常。并且不要忘记在websocket的javascript类中更改端口。

var conn = new WebSocket('ws://yourdomain.com:8282'); 
相关问题