Chrome扩展中的Socket通信问题
Posted
技术标签:
【中文标题】Chrome扩展中的Socket通信问题【英文标题】:Problem with Socket communication in Chrome extension 【发布时间】:2019-10-01 06:16:56 【问题描述】:我正在尝试在 chrome 扩展中建立套接字通信。我有我的扩展程序,它将与 chrome 提供的“简单 Websocket 客户端”通信。但我无法使用“WebSocket”类成功建立连接。
我尝试使用 Socket 类,但后来发现它不支持扩展。因此我尝试了 websocket,但我收到错误消息“websocket 握手期间出错:ERR_INVALID_HTTP_RESPONSE。”
var wsoc;
wsoc = new WebSocket("ws://localhost:8001");
wsoc.onopen = function()
wsoc.send("Message from chrome extension");
;
我希望通过以下 Chrome 提供的客户端成功建立连接:简单 WebSocket 客户端扩展 (https://chrome.google.com/webstore/detail/simple-websocket-client/pfdhoblngboilpfeibdedpjgfnlcodoo?hl=en)
【问题讨论】:
【参考方案1】:您需要设置一个 WebSocket 服务器。可以使用 ws,一个 Nodejs WebSocket 库来做到这一点。您正在尝试做的是将客户端连接到客户端,这是行不通的。您可以作为客户端之间的中间人启动 WebSocket 服务器。在浏览器中创建服务器是不可能的。 source
【讨论】:
嗨,所以我尝试使用 netcat 和命令“nc.exe -l -p 8001”创建服务器,但我仍然面临同样的问题。将 ERR_INVALID_HTTP_RESPONSE 作为错误。 可能你需要处理握手的东西。更多信息在这里ssklogs.blogspot.com/2012/10/…恕我直言,你最好使用一些框架/库来处理这个问题,正如我的回答中提到的那样。 给定链接上的 bash 脚本似乎崩溃了。知道为什么会发生这种情况吗? ***.com/a/57879576/3360802 TL;如前所述,DR 使用第 3 方 WebSocket 服务器。【参考方案2】:客户端:使用 AJAX https://www.tutorialspoint.com/ajax/ajax_in_action.htm
服务器参考:https://docs.microsoft.com/en-us/windows/win32/http/http-server-sample-application
【讨论】:
以上是关于Chrome扩展中的Socket通信问题的主要内容,如果未能解决你的问题,请参考以下文章