为什么我没有从JS客户端(作为Chrome扩展程序)收到任何信息?

时间:2019-01-30 16:48:41

标签: javascript python sockets google-chrome-extension visual-studio-code

简介

我正在从JS学习(在与Java混淆了一段时间之后),偶然发现了javascript中的套接字。

问题

我已经制作了一个正在侦听的python服务器,然后将JS扩展程序加载到了Chrome,但该服务器未收到任何消息。我在哪里做错了或缺少什么?

manifest.Json(也许很重要,因为我无法将这个.js作为“背景”使用)

 {
"manifest_version": 2,
"name": "Server-Test-Ext",
"version": "0.1",

"content_scripts": [
{
    "matches": ["<all_urls>"],
    "js": ["socket.js", "client.js"]


}]


}

client.js(例如Socket.io网站上的示例)

var socket = new io.Socket();

socket.connect('https://localhost:8080');   

socket.on('connect', function(){
    // connected!
  });
  socket.on('message', function(msg){
      // message coming
  });
socket.send('Hello world!');

server.py

import socket

HOST = '127.0.0.1'
PORT = 8080

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    conn, addr = s.accept()
    with conn: 
        print('Connected by', addr)
        while True:
            data = conn.recv(1024)
            if not data:
                break
            conn.sendall(data)

服务器成功创建了tcp(您可以通过在CMD netstat -an上键入内容来看到)

注意:

- I am using Visual Studio Code (cool text editor, still learning it)
- I am new to the subject (self-taught)

我的期望是在ext之前运行的python服务器上接收消息。显然。

感谢您对此问题的关注。

1 个答案:

答案 0 :(得分:0)

您需要声明对manifest.js的套接字权限。

详细信息: https://developer.chrome.com/apps/manifest/sockets