我希望你们都做得很好。我正在尝试从 worker.js 文件内部建立到socket.io服务器的连接,使用importScripts加载socket.io-client js文件,该文件与worker.js位于同一目录中。在使用var socket =io.connect(‘http://38.98.xxx.xxx:6000’)加载socket.io-client之后,我尝试在不同的主机上建立到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');
});
发布于 2015-12-03 17:04:27
我想通了。我就得搬走
socket.on('connect', function () {
port.postMessage('connect');
});
socket.on('disconnect', function () {
port.postMessage('disconnect');
});
添加到worker.js
中的self.addEventListener("connect", function(e) {});
中,并从var socket=io.connect('http://38.98.xxx.xxx:6000');
更改为
var socket = io('http://38.98.xxx.xxx:6000');
如果有人需要的话,这是一个有效的例子。
worker.js
importScripts('socket.io.js');
var socket = io('http://38.98.xxx.xxx: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();
socket.on('push', function(pushed){
port.postMessage(pushed);
});
socket.on('connect', function () {
port.postMessage('connect');
});
socket.on('disconnect', function () {
port.postMessage('disconnect');
});
}, false);
发布于 2018-07-18 08:00:16
const io = require('socket.io-client');
的替代者有所下降
它在专用网络工作者中为返回的套接字运行连接。它是
const io = require('sockerworker.io');
const socket = io([url][, options]);
您可以使用以下代码,而不是为webworker编写自己的样板。可通过npm获取here。(披露:我是它的作者。)
https://stackoverflow.com/questions/34060237
复制相似问题