”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 浏览器可以使用 JavaScript 建立原始 TCP 套接字连接吗?

浏览器可以使用 JavaScript 建立原始 TCP 套接字连接吗?

发布于2024-11-16
浏览:673

Can Browsers Establish Raw TCP Socket Connections with JavaScript?

使用 JavaScript 从浏览器连接到 TCP 套接字:可能吗?

要在浏览器和基于 TCP 套接字的服务器应用程序之间建立实时通信,您需要可以探索两种可行的方法:

1. XHR 或 WebSockets

XHR (XMLHttpRequest) 和 WebSockets 都有助于浏览器和服务器之间的实时数据传输。然而,两者都不提供对原始 TCP 套接字的直接访问。

2。 Chrome 的实验性 TCPSocket API

Chrome 提供了实验性 TCPSocket API,使开发人员能够从浏览器应用程序建立和管理原始 TCP 连接。这是一个示例:

chrome.experimental.socket.create('tcp', '127.0.0.1', 8080, function(socketInfo) {
  chrome.experimental.socket.connect(socketInfo.socketId, function (result) {
    chrome.experimental.socket.write(socketInfo.socketId, "Hello, world!");
  });
});

注意: 此 API 仅适用于 Chrome 应用,并且需要在扩展程序清单中启用实验标志。

其他信息:

  • JavaScript 的原始套接字 API 的实现仍在开发中。
  • 当前的浏览器通常使用用于实时通信的 XHR 或 WebSockets。
  • 要进一步探索 TCPSocket API,请参阅提供的链接:

    • http://www.w3.org/TR/raw-sockets/
    • https://developer.mozilla.org/en-US/docs/Web /API/TCPSocket
版本声明 本文转载于:1729466474如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么我的 Bootstrap 4 列是垂直对齐而不是水平对齐?
    为什么我的 Bootstrap 4 列是垂直对齐而不是水平对齐?
    Bootstrap 4 列对齐不一致在从 Bootstrap 3 到 4 的过渡中,您注意到您的列是垂直对齐的,而不是水平地。这可以归因于 Bootstrap 4 中网格系统的更改。Col-12 Issue在 Bootstrap 3 中,您可以使用以下方法将列包装在父行中“col-12”类。这在 B...
    编程 发布于2024-11-16
  • 如何在 Python 中确定生成器是否为空
    如何在 Python 中确定生成器是否为空
    确定生成器的空性在Python中,生成器是用于惰性评估和迭代大型数据集的强大工具。然而,由于发电机的动态特性,确定发电机是否为空是一个独特的挑战。与列表或元组不同,生成器没有大小属性​​,简单地迭代它们会导致 StopIteration 异常。Peek 与 HasNext有些人可能会建议使用 pee...
    编程 发布于2024-11-16
  • 如何基于公共列合并多个 DataFrame 并保留共享行?
    如何基于公共列合并多个 DataFrame 并保留共享行?
    基于公共列合并多个数据帧您有多个具有公共列“日期”的数据帧,并且需要合并它们同时保留所有数据帧共有日期的行。递归函数方法可能很复杂并且容易出错。这是使用 pandas 强大的分组和合并功能的更简单的解决方案:import pandas as pd # Create a list of datafra...
    编程 发布于2024-11-16
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-11-16
  • 为什么 PHP 中的特殊字符会显示为带问号的黑钻石?
    为什么 PHP 中的特殊字符会显示为带问号的黑钻石?
    PHP字符编码问题:带有问号的小黑钻石用户在使用PHP从数据库中检索数据时经常遇到一个特殊问题:特殊字符(例如引号)显示为带有问号 (�) 的黑色菱形。此问题是由于数据的编码与用于显示它的编码之间的差异引起的。要解决此问题,您可以实现多种方法:HTTP 标头: 添加 HTTP 标头,为浏览器指定正确...
    编程 发布于2024-11-16
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-11-16
  • CURL 可以替代 file_get_contents 来获取外部链接吗?
    CURL 可以替代 file_get_contents 来获取外部链接吗?
    使用 CURL 获取外部链接(替代 file_get_contents)为了获取特定页面上的外部链接,通常使用 file_get_contents 函数。但是,当您使用的服务器不支持此功能时,CURL 可以作为一个可行的替代方案。要实现 CURL,您可以使用以下代码:function file_ge...
    编程 发布于2024-11-16
  • 大批
    大批
    方法是可以在对象上调用的 fns 数组是对象,因此它们在 JS 中也有方法。 slice(begin):将数组的一部分提取到新数组中,而不改变原始数组。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index p...
    编程 发布于2024-11-16
  • Go的FileMode函数如何处理八进制和十进制权限转换?
    Go的FileMode函数如何处理八进制和十进制权限转换?
    Go 中 FileMode 函数的权限解析os.FileMode 函数在设置标志之前转换各种格式的权限。这些格式包括整数、八进制表示形式以及可能的其他形式。从整数转换为 os.FileMode 时,该函数不会显式辨别整数是用八进制还是十进制表示。十进制表示形式被解释为常规整数。数字的八进制表示形式通...
    编程 发布于2024-11-16
  • ## 如何在 Android 上从 FTP 服务器下载文件:哪个 Java 库最好?
    ## 如何在 Android 上从 FTP 服务器下载文件:哪个 Java 库最好?
    适用于 Android 的 FTP 库正在寻找一个可靠的 Java 库,以方便从 Android 设备上的 FTP 服务器下载和恢复文件?让我们深入研究一些潜在的解决方案。Apache Commons FTP考虑一下 Apache Commons FTP,它是一个广泛使用且备受推崇的 FTP 操作库...
    编程 发布于2024-11-16
  • 为什么 Java 的模运算符对于负数返回负结果?
    为什么 Java 的模运算符对于负数返回负结果?
    Java 中的负模结果在 Java 中执行负数模运算时,您可能会注意到结果与获得的结果不同在Python中。在 Java 中,int i = -1 % 2 得到 -1,而在 Python 中,它返回 1。理解模和余数理解这种差异的关键在于模和余数之间的区别。在 Python 中,% 运算符返回模数,...
    编程 发布于2024-11-16
  • 为什么 TCPDF 是 PHP 的最佳 PDF-API?
    为什么 TCPDF 是 PHP 的最佳 PDF-API?
    确定 PHP 的最佳 PDF-API在使用 PHP 生成 PDF 的领域中,存在多种选项,每种选项都有其独特的优点和缺点。其中,TCPDF 因其增强且维护良好的性质而脱颖而出,源于其作为 FPDF 后代的血统。为什么选择 TCPDF?作为一个基于 PHP 的 PDF 库,TCPDF 随着时间的推移不...
    编程 发布于2024-11-16
  • 如何在 SQL 中连接具有逗号分隔值字段的表?
    如何在 SQL 中连接具有逗号分隔值字段的表?
    使用逗号分隔值查询多个连接字段在 SQL 中,处理包含逗号分隔列表 (CSV) 的表时在他们的领域,有效地执行连接可能具有挑战性。本文探讨了一种特定场景,其中电影表中的类别列包含多个类别 ID,目标是在从类别表中获取相应类别名称时将其完全排除。下表说明了该场景:Table categories: -...
    编程 发布于2024-11-16
  • 为什么 Java 中不推荐使用 Thread.stop():安全问题和替代方案?
    为什么 Java 中不推荐使用 Thread.stop():安全问题和替代方案?
    Java 中的线程终止:为什么 Thread.stop() 被弃用?Java 中的 Thread.stop() 由于固有的原因而被弃用安全问题。使用 Thread.stop() 停止线程会突然解锁其持有的任何锁(监视器),可能会使对象处于不一致的状态并导致意外行为。这种行为可能是不可预测且难以检测的...
    编程 发布于2024-11-16
  • 以下是几个可能的标题,根据文章内容选择最合适的:

* How to fix \"invalid version: git ls-remote -q origin\" error when using go mod tidy with private GitHub repositories?
* Downloading private GitHub repositories with `go mo
    以下是几个可能的标题,根据文章内容选择最合适的: * How to fix \"invalid version: git ls-remote -q origin\" error when using go mod tidy with private GitHub repositories? * Downloading private GitHub repositories with `go mo
    go mod tidy遇阻不能下载 GitHub 私有仓库在尝试用 go mod tidy 下载 GitHub 私有仓库时,您可能会遇到以下错误:invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/vcs/ea2...
    编程 发布于2024-11-16

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3