2015-09-25 114 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'); 
相關問題