Chrome扩展套接字io节点js
Chrome Extension Socket io node js
我需要创建一个 chrome 扩展,当我们从套接字 io 节点 js 服务器收到消息时显示通知。
如何在 chrome 扩展中包含 socket io?我无法使它正常工作。
Content.js:- Uncaught ReferenceError: io is not defined
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"
]
},
节点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!"});
});
因为您只需要 socket.io-客户端,所以您应该这样做:
"background": {
"scripts": [
"socket.io.js",
"background.js"
]
},
从此处下载并添加 socket.io.js 文件:https://raw.githubusercontent.com/Automattic/socket.io-client/1.3.5/socket.io.js
2020年注意事项:
Rahat 的回答很好,除了套接字版本,当你在后台脚本中使用它时,它总是会重新连接,所以如果你使用不合适的 socket.io.js 版本,你会得到这样的结果
但是 socket.io.js 2.3.0 可以正常工作
这是对我有用的 link https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js
我需要创建一个 chrome 扩展,当我们从套接字 io 节点 js 服务器收到消息时显示通知。
如何在 chrome 扩展中包含 socket io?我无法使它正常工作。
Content.js:- Uncaught ReferenceError: io is not defined
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"
]
},
节点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!"});
});
因为您只需要 socket.io-客户端,所以您应该这样做:
"background": {
"scripts": [
"socket.io.js",
"background.js"
]
},
从此处下载并添加 socket.io.js 文件:https://raw.githubusercontent.com/Automattic/socket.io-client/1.3.5/socket.io.js
2020年注意事项:
Rahat 的回答很好,除了套接字版本,当你在后台脚本中使用它时,它总是会重新连接,所以如果你使用不合适的 socket.io.js 版本,你会得到这样的结果
但是 socket.io.js 2.3.0 可以正常工作