HTML5 SharedWorker内的socket.io Websocket连接

HTML5 SharedWorker内的socket.io Websocket连接,websocket,socket.io,web-worker,Websocket,Socket.io,Web Worker,我希望你们都做得很好。我正在尝试从worker.js文件内部建立到socket.io服务器的连接,使用importScripts加载与worker.js位于同一目录中的js文件。加载socket.io-client后 通过使用var socket=io.connect(“”);我正在尝试在不同的主机上建立到socket.io服务器的连接,但它不起作用。请给我指出正确的方向。我感谢你的帮助 <script> var worker = new SharedWorker("

我希望你们都做得很好。我正在尝试从worker.js文件内部建立到socket.io服务器的连接,使用importScripts加载与worker.js位于同一目录中的js文件。加载socket.io-client后 通过使用var socket=io.connect(“”);我正在尝试在不同的主机上建立到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>

我想出来了。我得走了

socket.on('connect', function () {
    port.postMessage('connect');
});

socket.on('disconnect', function () {
    port.postMessage('disconnect');
});
进入
self.addEventListener(“connect”,函数(e){})
worker.js
中,并从
var socket=io.connect('http://38.98.xxx.xxx:6000');

如果有人需要,下面是一个工作示例

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');
});
  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);

我想出来了。我得走了

socket.on('connect', function () {
    port.postMessage('connect');
});

socket.on('disconnect', function () {
    port.postMessage('disconnect');
});
进入
self.addEventListener(“connect”,函数(e){})
worker.js
中,并从
var socket=io.connect('http://38.98.xxx.xxx:6000');

如果有人需要,下面是一个工作示例

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');
});
  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);

替换
const io=require('socket.io client')

它为专用webworker中返回的套接字运行连接。是的

const io = require('sockerworker.io');
const socket = io([url][, options]);

您可以使用它,而不是为webworker编写自己的样板文件。可通过npm获取。(披露:我是它的作者。)

替换
const io=require('socket.io client')

它为专用webworker中返回的套接字运行连接。是的

const io = require('sockerworker.io');
const socket = io([url][, options]);

您可以使用它,而不是为webworker编写自己的样板文件。可通过npm获取。(披露:我是它的作者。)

我不确定(这就是为什么它是一个评论,而不是一个答案),但我非常确定,并非所有浏览器都实现了共享worker中的WebSocket。最后我检查了一下,Firefox在这方面有很多问题。。。但是祝你好运!你好Myst,谢谢你的评论。我计划只在Chrome上使用它。我不确定(这就是为什么它是一个评论,而不是一个答案),但我非常确定,并非所有浏览器都实现了共享worker中的WebSocket。最后我检查了一下,Firefox在这方面有很多问题。。。但是祝你好运!你好Myst,谢谢你的评论。我计划只在Chrome上使用它。