如何从 Web 浏览器(客户端)建立 TCP Socket 连接?

2024-03-17

我读过关于WebSockets但它们似乎并不是纯粹的“套接字”,因为它们之上有一个应用层协议。 ”ws:"

有没有什么方法可以从网络浏览器进行纯套接字连接,以使网页活跃起来?

这是我在黑暗中随机刺伤的

  • Java提供的Applets套接字(需要安装java)
  • Flash提供的Flash插座(需要安装Flash)

但是对于 HTML5,如果它们不是 Socket,为什么称为 WebSocket?

websocket协议实现起来这么简单,“几乎”就是sockets吗?


我读过有关 WebSockets 的内容,但它们似乎不是纯粹的“套接字”,因为它们之上有一个应用程序层协议。

[websocket 协议] 实现起来是否如此简单,以至于“几乎”是套接字?

直接从浏览器允许常规套接字连接永远不会发生,因为这会带来巨大的风险。 WebSockets 与您所获得的浏览器原始套接字非常接近。初始 WebSockets 握手类似于 HTTP 握手(允许 Web 服务器代理/桥接它),并添加了 CORS 类型安全性。此外,WebSockets 是一种基于消息的传输(而不是作为原始 TCP 进行流式传输),并且这是通过在每个消息帧上使用两个字节标头来完成的。

即使 Flash 也无法完全建立原始 TCP 连接。闪存套接字还添加了 CORS 安全性,但闪存套接字连接不是带内握手,而是与目标服务器上的端口 843 建立连接以请求安全策略文件。

有没有什么方法可以从网络浏览器进行纯套接字连接,以使网页活跃起来?

是的,你可以使用我的网络套接字 https://github.com/kanaka/websockify桥接/代理,允许启用 WebSockets 的浏览器通过 websockify 直接连接到 TCP 套接字。

但是对于 HTML5,如果它们不是 Socket,为什么称为 WebSocket?

WebSocket 是一种基于 TCP 套接字的传输。握手之后,开销非常小(通常只有两个字节的标头)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Web 浏览器(客户端)建立 TCP Socket 连接? 的相关文章

随机推荐

  • [NSObject:任何对象]?' Xcode 6 beta 6 中没有名为“下标”的成员错误

    我使用下面的几行代码来获取键盘在屏幕上显示时的框架 我已经注册到UIKeyboardDidShowNotification通知 func keyboardWasShown notification NSNotification var in
  • 远程 RPC 客户端已解除关联。可能是由于容器超过阈值或网络问题。检查驱动程序日志中是否有 WARN 消息

    我正在开发 5 节点集群 每个节点 7 个核心 每个节点 25 GB 我当前的执行使用 1 2GB 输入数据 我能知道为什么会出现以下错误吗 我使用 pyspark 数据框 spark 1 6 2 Stage 9487 gt 198 2 2
  • 使用 BFS 进行加权图

    我正在修改单源最短路径算法 在视频中 老师提到BFS DFS不能直接用于查找最短路径 in a 加权图 我想每个人都知道这一点 并说自己找出原因 我想知道为什么它不能用于加权图的确切原因 解释 是由于边缘的重量还是其他原因造成的 有人可以解
  • 每个用户轨道的日期范围重叠

    如何使用下面的代码验证每个用户的日期 当我以其他用户身份登录时 我无法创建具有相同日期的预订 我有 user id 引用表 users 中的 id 我希望能够使 date start 和 date end 仅对用户唯一 并且仍然能够与不同的
  • 在 ARM 模板中引用 KeyVault 机密失败,并显示“模板中未定义资源”

    我正在尝试在 Azure Web 应用程序的 AppConfig 部分中创建 KeyVault 引用 KeyVault 引用引用了 KeyVault 中存在的机密 该密钥属于不同资源组 因此模板中不存在 根据文档 https learn m
  • 制作可前后移动的可定制 LCG

    我将如何让 LCG 伪随机数生成器的类型 在两个方向上移动 我知道前进是 a x c m但我怎样才能扭转它呢 我使用这个 所以我可以将种子存储在地图中玩家的位置 并能够通过在 LCG 中向后和向前传播 就像某种随机数线 来生成它周围的东西
  • 在 MVP 中,谁应该处理导航?

    我相信 Presenter 是负责处理 MVP 应用程序的导航方面的人 这是真的还是有例外 我认为视图是唯一负责屏幕导航的视图 Here https medium com nbarishok on navigation in android
  • 如何使用 Python 将 png 并排放置到 HTML 表格中

    我有一个 matplotlib 图转换为 png figure new savefig figure new png bbox inches tight pad inches 0 and a styler objectreport newt
  • 接受连续点的电子邮件的正则表达式

    这是我的正则表达式 a zA Z0 9 lt gt s lt gt s a zA Z0 9 0 9 1 3 0 9 1 3 0 9 1 3 0 9 1 3 a zA Z 0 9 a zA Z 2 例如 上述正则表达式接受电子邮件本地部分中的
  • 检查标志位java

    我的标志位有问题 我有一个int保存标志的变量 首先 我为该变量设置了一些标志 稍后我需要检查该变量中设置了多少个标志 但我不知道该怎么做 要检查是否设置了位值 int value VALUE TO CHECK OTHER VALUE TO
  • 检查 Java 字符串中的字母大小写(大写/小写)

    我遇到的问题是我无法让我的密码验证程序检查字符串以确保其中 1 个字符为大写字母 1 个字符为小写字母 它将检查整个字符串中的其中一个other 并根据正在检查的语句打印错误消息 我查看了这个网站和互联网来寻找答案 但找不到答案 这是家庭作
  • PHP 中 Trait 和抽象类的区别

    我最近遇到Traits http php net manual en language oop5 traits php在 PHP 中 我试图理解它们 在我的研究过程中 我偶然发现了这个 Stack Overflow 问题 特性与接口 htt
  • 在 NetBeans 7.1.1 中创建 UML 类图

    我想安装 启用 NetBeans 插件来创建和查看 UML 图 如图所示here http wiki netbeans org wiki images b b8 Vista Nimbus Uml Screenshot NBLookAndFe
  • Jackson 支持 java 8 Stream() 吗?

    我想用杰克逊的树模型 http wiki fasterxml com JacksonTreeModel使用 Java 8 流 API 如下所示 JsonNode jn new ObjectMapper readValue src JsonN
  • 如何在 CSS 中保留空格但忽略换行符?

    The white spaceCSS 3 中的属性有pre wrap值 它将保留空格和换行符 并在必要时换行 并且pre linevalue 它会折叠空白 但保留换行符 并在必要时换行 它能做什么not不过 有一个值果酱空白和崩溃换行 同时
  • C++ 中的最佳 XML 库,快速设置

    我想知道 C 中最好的 XML 库 我正在使用 Visual Studio 是什么 考虑到快速设置至关重要 基本上 我想创建一个文件来保存各种 avi 文件的注释 先感谢您 你应该能够得到TinyXML http www grinningl
  • 异步/等待清晰,以睡眠为例

    我试图通过下面的实现来掌握 async await 的窍门 但它没有按预期工作 public static async sleep ms number Promise
  • 如何在AppGallery中发布apk而不使用不同的包创建应用程序的副本

    我正在尝试在 AppGallery 上发布应用程序 但是当我在控制台项目中输入新应用程序的包名称时 它说该包已被占用 该应用程序已发布在 Play 商店上 如果您在 AppGallery 中搜索它 它会找到它 但 AppGallery 页面
  • tkinter Askstring 在其可见性更改之前被删除

    我正在尝试制作一个弹出窗口 人们可以在其中填写输入框中的字符串 我已经经历了很多例子 但它不起作用 我正在尝试这样做 var entry simpledialog askstring Test Test 我收到此错误消息 tkinter T
  • 如何从 Web 浏览器(客户端)建立 TCP Socket 连接?

    我读过关于WebSockets但它们似乎并不是纯粹的 套接字 因为它们之上有一个应用层协议 ws 有没有什么方法可以从网络浏览器进行纯套接字连接 以使网页活跃起来 这是我在黑暗中随机刺伤的 Java提供的Applets套接字 需要安装jav