【问题标题】:Chrome.socket listener in browser浏览器中的 Chrome.socket 监听器
【发布时间】:2013-10-26 01:02:36
【问题描述】:

因此,我进行了非常彻底的搜索并尝试了很多方法,以便在 JavaScript 中为浏览器中的 Chrome.socket API 创建一个 TCP 或 UDP 侦听器。我现在很困惑。到目前为止,我已经尝试过使用:

  • WebSockets
  • WebTCP 套接字
  • WebRTC
  • PeerJS
  • chrome 扩展中的节点网络模块

还有几个小选项。到目前为止,这些“选项”似乎都不能正常工作。我得到的最接近的结果是在浏览器中的 readyState 为零。服务器接受连接,但浏览器中套接字的 readyState 保持为零(表示仍在连接)。

我有两个问题。

有可能吗? 是否甚至可以在仅使用客户端 JavaScript 的独立网站上侦听来自 Chrome 扩展程序的传入 TCP/UDP 连接?

怎么做? 如果是这样,我将如何创建它?

【问题讨论】:

  • “是否有可能在浏览器端监听来自 Chrome 扩展的传入 TCP/UDP 连接?”到底是什么意思?你期望听什么? Chrome 应用程序?一个网站?在安装了特定 Chrome 应用程序的浏览器中运行的网站?您期望建立什么传入连接? Chrome 应用程序?一个网站?应用程序?
  • A@apsillers 我正在尝试执行以下操作:chrome 扩展 (=server) 创建套接字并等待客户端连接 -> 网站 (=client) 创建套接字并请求连接chrome.socket 正在侦听的特定地址+端口 -> chrome.socket 服务器接受连接并将消息发送回网站 -> 在网站上记录此消息。
  • @user2730863:AFAIK,Chrome 扩展有更直接的方式与页面 JS 通信。
  • @SLaks 但是如果页面 JS 不是由 chrome 扩展交付呢?

标签: javascript node.js sockets tcp google-chrome-extension


【解决方案1】:

出于安全原因,您将永远无法在纯客户端代码中创建原始套接字。

WebSockets 或 WebRTC 等协议要求服务器明确确认协议并允许您进行连接。

【讨论】:

  • 这个问题是在浏览器扩展的上下文中提出的。 “浏览器端”代码是什么意思? Chrome 应用当然可以使用chrome.socket 创建套接字。
  • @Rob_W 对于浏览器端代码,我的意思是 JavaScript 可以直接在浏览器中运行,无需使用 chrome 扩展。所以只是客户端JavaScript。抱歉我的描述含糊。
  • @RobW:不;实际上不是。
  • @SLaks 感谢您的回复,但我能否在发送之前将我希望从 chrome 扩展(服务器)发送的数据“翻译”为 websocket 客户端可以读取的数据消息?还是我在这里错过了 tcp 套接字的含义/用法的基本部分?
  • @user2730863:我不确定你的意思。如果你想使用 WebSockets,你只需要一个 WebSocket 服务器。您不需要扩展程序。
猜你喜欢
  • 2014-01-28
  • 2021-06-01
  • 2018-01-17
  • 2022-11-28
  • 2014-06-26
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多