繁体   English   中英

Socket.io 从 firefox 插件连接到本地主机

[英]Socket.io connecting to localhost from firefox addon

我在使用 firefox 附加上下文脚本中的 Socket.io 连接到本地 websocket 时遇到问题。

我可以运行网页中托管的相同脚本,以便服务器签出。

相关清单设置

    "content_security_policy": "script-src 'self' *127.0.0.1*; object-src 'self'",

    "content_scripts": [
        {
            "matches": ["*://*.website.com/*"],
            "js": ["jquery.js", "content_script.js"]
        }

content_script.js

$.getScript('http://127.0.0.1:8081/socket.io/socket.io.js',function() {

    var socket = io.connect('http://127.0.0.1:8081');
  
    socket.on('connect', function() {
         socket.emit('config',
             {
                 server: {
                     port: 3333,
                     host: '127.0.0.1'
                 },
                 client: {
                     port: 3334,
                     host: '127.0.0.1'
                 }
             }
         );
         socket.on('message', function(obj) {
             console.log(obj);
         });

         socket.emit('message', '/foo/bar 1 2 3');
     });

});

它在初始化时失败而没有错误消息。

阅读论坛我可以看到多年来 firefox websocket 安全性发生了很多变化,但许多 about:config 更改或清单规则建议似乎已被弃用。

对于任何可能偶然发现这一点的人,我怀疑是内容安全策略对不允许这种连接非常安静。

毫无疑问,使用清单有一个很好的解决方案,但由于我只在本地运行它,我安装了一个单独的 firefox 开发人员版本,限制了它可以访问的站点,并在 about:config 中关闭了 csp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM