解決済み
クライアントページに変更innerText
しました。innerHTML
テストするコードがあり、Google Chrome では正常に動作しますが、Firefox では動作しません! 何が問題を引き起こす可能性がありますか?!
サーバーコード:
var http = require('http'),
io;
var html = require('fs').readFileSync("./index.html").toString('utf-8');
var server = http.createServer(function (request, response) {
'use strict';
response.statusCode = 200;
response.setHeader('Content-Type', 'text/html');
response.end(html);
});
server.listen(8124);
io = require('socket.io').listen(server);
function push(socket) {
'use strict';
var i = 0;
return function () {
socket.send(String(i++ % 3600));
};
}
io.sockets.on('connection', function (socket) {
'use strict';
var interval = setInterval(push(socket), 1000);
socket.on('disconnect', function () {
clearInterval(interval);
});
});
クライアントコード:
<!DOCTYPE html>
<title>Socket.IO Example</title>
<div id="number"></div>
<script src="/socket.io/socket.io.js"></script>
<script>
var io = io || undefined,
socket = io.connect(),
numberElement = document.getElementById('number');
socket.on('message', function (data) {
numberElement.innerText = data;
});
</script>
Firefox デバッガー
Error: The connection to ws://127.0.0.1:8124/socket.io/1/websocket/O_dTsMb1uMKPtpPdqSVG was interrupted while the page was loading.
Source File: http://127.0.0.1:8124/socket.io/socket.io.js
Line: 2371
そのコードの 2371 行目は次のとおりです。
this.websocket = new Socket(this.prepareUrl() + query);
どうすれば問題を解決できますか?!