Node.js+Socket.IOを使った非同期通信で、特定のブラウザでWebSocketの接続が正常に行われません。
この症状の原因がブラウザにあるのか、プログラム側にあるのか、またその対処法があればお教え下さい。
###server.js
var http = require('http'); var fs = require("fs"); var server = http.createServer(); var socketio = require("socket.io").listen(server); var counter = 0; server.on("request",function(req,res){ fs.readFile("client.html",function(err,data){ res.writeHead(200); res.end(data); }); }); socketio.sockets.on('connection',function(soc){ soc.on("connect",function(){ counter++; soc.broadcast.emit("count",counter); }); }); server.listen(8888,"localhost");
###client.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Client</title> <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> </head> <body> <h1>Client</h1> <p id="p">0</p> <button id="btn">button</button> </body> </html> <script> window.onload = function(){ var socket = io.connect("http://localhost:8888"); var b = document.getElementById("btn"); var pp = document.getElementById("p"); b.addEventListener("click",function(){ socket.emit("connect"); }); socket.on("count",function(data,fn){ pp.textContent = data; }); }//onload </script>
###Internet Explorer
正常に通信が行われます。
###FireFox
コンソールにエラーが表示されます。
ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=hdxmjiV8NgdZouiwAAAB のサーバへの接続を確立できませんでした。 socket.io-1.4.5.js:1:27995
ページの読み込み中に ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=hdxmjiV8NgdZouiwAAAB への接続が切断されました。 socket.io-1.4.5.js:1:27995
ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=sMRwIDADQ9Orc-00AAAC のサーバへの接続を確立できませんでした。 socket.io-1.4.5.js:1:27995
ページの読み込み中に ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=sMRwIDADQ9Orc-00AAAC への接続が切断されました。 socket.io-1.4.5.js:1:27995
ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=A0XY6-BnSBZcxFNgAAAE のサーバへの接続を確立できませんでした。 socket.io-1.4.5.js:1:27995
ページの読み込み中に ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=A0XY6-BnSBZcxFNgAAAE への接続が切断されました。 socket.io-1.4.5.js:1:27995
ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=bno2MKqkPS18ty4vAAAH のサーバへの接続を確立できませんでした。 socket.io-1.4.5.js:1:27995
ページの読み込み中に ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=bno2MKqkPS18ty4vAAAH への接続が切断されました。
###Chrome
コンソールにエラーが表示されます。
WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=PBfRLQNEhUC3aptcAAAV' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=Jev3Co4eq1YYkIthAAAY' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=vomMJHHW0xc5qo8NAAAZ' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=72iLJJ0JUsAg-BDLAAAb' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=CzrSdXhQITaPjlZ7AAAd' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=blzWRyXwEIOmvpG9AAAf' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=lkX1J5YyKb0Lx88CAAAi' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=dB7OfgCOHGYjpf_8AAAk' failed: WebSocket is closed before the connection is established.
socket.io-1.4.5.js:1 WebSocket connection to 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket&sid=aH58ADxVKOBWu5e-AAAl' failed: WebSocket is closed before the connection is established.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。