【发布时间】:2016-03-07 17:26:57
【问题描述】:
我希望你们都做得很好。我正在尝试使用加载socket.io-client js 的 importScripts 从 worker.js 文件内部建立到 socket.io 服务器的连接与worker.js在同一目录中的文件。加载 socket.io-client 后 通过使用 var socket = io.connect('http://38.98.xxx.xxx:6000');我正在尝试与不同主机上的 socket.io 服务器建立连接,但它不起作用。请指出正确的方向。感谢您的帮助。
<script>
var worker = new SharedWorker("http://baseUrl.com/js/push/worker/worker.js");
worker.port.addEventListener("message", function(e) {
console.log("Got message: " + e.data);
}, false);
worker.port.start();
worker.port.postMessage("start");
</script>
worker.js
importScripts('socket.io.js');
var socket = io.connect('http://38.98.154.167:6000');
var connections = 0;
self.addEventListener("connect", function(e) {
var port = e.ports[0];
connections ++;
port.addEventListener("message", function(e) {
if (e.data === "start") {
port.postMessage('hello');
}
}, false);
port.start();
}, false);
socket.on('connect', function () {
port.postMessage('connect');
});
socket.on('disconnect', function () {
port.postMessage('disconnect');
});
【问题讨论】:
-
我不确定(这就是为什么它是一个评论,而不是一个答案),但我很确定共享工作者中的 websockets 并没有为所有浏览器实现。最后我检查了一下,Firefox 在这方面遇到了重大问题……但祝你好运!
-
嗨!神秘,感谢您的评论。我打算只在 Chrome 上使用它。
标签: websocket socket.io web-worker