我嘗試通過WebSocket在我的symfony項目上創建一個簡單的聊天頁面。 首先,我用React-php庫,它完美地適用於終端,但是當我嘗試將其連接到瀏覽器我遇到這個錯誤對鉻:WebSocket無法建立到服務器的連接
Uncaught Error: INVALID_STATE_ERR: DOM Exception 11
,並在Firefox
Firefox can't establish a connection to the server at ws://localhost:8000/.
接下來我用Ratchet庫並按照教程,但仍然是同樣的問題,終端上工作,在瀏覽器上的錯誤。 我對瀏覽器端和JavaScript中使用telnet localhost 8000
是
var conn = new WebSocket('ws://localhost:8000');
conn.onmessage = function(e) {
console.log(e.data);
};
conn.send('Hello World!');
服務器代碼陣營
require __DIR__.'/../vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);
$conns = new \SplObjectStorage();
$socket->on('connection', function ($conn) use ($conns) {
$conns->attach($conn);
$conn->on('data', function ($data) use ($conns, $conn) {
foreach ($conns as $current) {
if ($conn === $current) {
continue;
}
$current->write($data);
}
});
$conn->on('end', function() use ($conns, $conn) {
$conns->detach($conn);
});
});
$socket->listen(8000);
$loop->run();
和服務器代碼棘輪
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/chat.php';
use Ratchet\Server\IoServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;
$server = IoServer::factory(new WsServer(new Chat()), 8000);
$server->run();
的另一件事是客戶端網頁的網址爲localhost/X/chat
和服務器localhost/X/server
,我試過ws://localhost:8000/X/server
但仍不起作用
不,我使用httP,但仍然無法正常工作。 – Erfan
第2輪,我編輯了我的答案。 – igorw
如果連接正確,'conn.send()'可用。但是,我試過你的代碼,但仍然無法正常工作。 – Erfan