【发布时间】:2015-06-30 22:31:01
【问题描述】:
Socket.io 在除 IE8 和 9 之外的所有平台上都能完美运行,这是客户端的要求。你们能帮忙解决这个问题吗?
我一直在阅读所有类似的问题,但到目前为止我发现的大多数解决方案都无法在 IE8 上解决这个问题。
结构如下:
服务器端
var ip = 'xxx.xxx.xxx.xxx';
var ipPort = '8081';
var app = require('http').createServer(handler);
var io = require('socket.io')(app);
var fs = require('fs')
app.listen(ipPort, function() {
//console.log('Listening at: http://'+ ip +':'+ ipPort +'');
});
//io.set('transports', ['websocket','flashsocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']);
function handler (req, res) {
fs.readFile(__dirname + '/test.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
客户端
<html>
<body>
</body>
<script src="/socket.io/socket.io.js"></script>
<script>
alert("hi");
//var socket = io.connect('xxx.xxx.xxx.xxx:8081',{transports:'jsonp-polling');
var socket = io.connect(''xxx.xxx.xxx.xxx:8081',{secure: true});
socket.on('news', function (data) {
alert("hello data:"+data[0]);
socket.emit('my other event', { my: data });
});
socket.on('connect', function () {
alert("hello socket");
});
</script>
</html>
我没有收到任何错误,只是没有响应..我在 socket.on('news') 上放置了一个 alert() 并且没有得到任何反馈,但是我添加了 socket.on('connect')并将alert()放在里面,它就会弹出来!!
希望有人在此之前通过此问题并解决它。 我在 win7 和 node(v0.10.30) socket.io(v1.0.6) 非常感谢所有的帮助。
【问题讨论】:
标签: node.js internet-explorer-8 cross-browser socket.io