gpt4 book ai didi

node.js - IE8 和 9 上的 socket.io 问题

转载 作者:搜寻专家 更新时间:2023-11-01 00:43:59 25 4
gpt4 key购买 nike

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)非常感谢所有的帮助。

最佳答案

我发现这个问题的一个解决方案是在服务器端安装 add express;一切都奇迹般地起作用!(npm 安装 express )

enter image description here

想知道我们是否都需要安装 express 以避免这些问题......嗯!

编辑:显然在客户端的代码中还有另外两个问题:

我添加了 <!DOCTYPE html>在页面的头部,并将 socket.io 外部脚本链接和代码移动到标签的末尾。所有问题都消失了。

关于node.js - IE8 和 9 上的 socket.io 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com