Chrome扩展套接字io节点js

时间:2015-06-25 22:09:56

标签: node.js google-chrome-extension socket.io

我需要创建一个chrome扩展,当我们从socket io node js server收到消息时会显示一条通知。

如何在chrome扩展程序中包含socket io?我无法让它发挥作用。

Content.js: - 未捕获的ReferenceError:未定义io

var socket = io.connect('http://localhost:1337');
socket.on("hello",function(data){
    console.log(data.text);
    chrome.runtime.sendMessage({msg:"socket",text:data.text},function(response){});
});

清单: - 这不是导入套接字io 无法从以下位置加载扩展程序: 无法加载后台脚本' http://localhost:1337/socket.io/socket.io.js'。

    "background": {
    "scripts": [
        "http://localhost:1337/socket.io/socket.io.js",
        "background.js"
    ]
},

node server.js

var app = require('http').createServer(handler).listen(1337);
var io = require('socket.io').listen(app);

function handler(req,res){
    console.log(req.url);
    res.writeHead(200, {'Content-Type':'text/plain'});
    res.end('Hello Node\n You are really really awesome!');
}

io.sockets.on('connection',function(socket){
    socket.emit('hello',{text:"node!"});
});

2 个答案:

答案 0 :(得分:11)

由于您只需要socket.io-client,这就是您应该做的事情:

"background": {
  "scripts": [
    "socket.io.js",
    "background.js"
  ]
},

从此处下载并添加socket.io.js文件:https://raw.githubusercontent.com/Automattic/socket.io-client/1.3.5/socket.io.js

答案 1 :(得分:0)

请注意2020:

除了套接字版本以外,Rahat的回答都很好,当您在后台脚本中使用它时,它始终会重新连接,因此,如果使用不合适版本的socket.io.js,您将得到类似的内容 enter image description here

但是使用socket.io.js 2.3.0可以正常工作 enter image description here 这是一个对我有用的链接https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js

更多信息,位于https://www.npmjs.com/package/socket.io-client