WebSocket 和纯 TCP 之间的根本区别是什么?

2024-04-03

我读过关于WebSockets http://en.wikipedia.org/wiki/Web_Sockets我想知道为什么浏览器不能像任何其他桌面应用程序一样简单地打开简单的 TCP 连接并与服务器通信。为什么可以通过 websocket 进行这种通信?


当您在 Intranet 边界内工作时,通过 TCP 套接字进行通信会更容易,因为您可能可以控制该网络上的计算机,并且可以打开适合建立 TCP 连接的端口。

通过互联网,您正在与另一端其他人的服务器进行通信。它们不可能打开任何旧套接字进行连接。通常他们只有几个标准端口,例如用于 HTTP 的端口 80 或用于 HTTPS 的 443 端口。因此,要与服务器通信,您必须使用这些端口之一进行连接。

鉴于这些是通常使用 HTTP 的 Web 服务器的标准端口,因此您必须遵守 HTTP 协议,否则服务器将不会与您通信。 Web 套接字的目的是允许您通过 HTTP 发起连接,然后协商使用 Web 套接字协议(假设服务器能够这样做)以允许更像“TCP 套接字”的通信流。

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

WebSocket 和纯 TCP 之间的根本区别是什么? 的相关文章

  • GO Websocket 向所有客户端发送消息

    这段代码一切正常 为了更好的阅读而缩短了它 When Client1向服务器发送请求 服务器立即响应他 但是 其他客户端看不到响应消息 所以我想更进一步 当客户端向服务器发送请求时 服务器会响应所有客户端 以便所有客户端都可以看到该消息 我
  • Scapy 不需要的 RST TCP 数据包

    为了理解TCP是如何工作的 我尝试伪造自己的TCP SYN SYN ACK ACK 基于教程 http www thice nl creating ack get packets with scapy http www thice nl c
  • ServerEndpoint 和 web.xml

    我有一些 Soap REST servlet 现在还有一个 WebSocket ServerEndpoint game public class WebSocketgame 我有下一个麻烦 如果 web xml 存在 WebSocket 不
  • 使用 Socket.IO 的 Python 客户端到 nodeJS 服务器

    我正在尝试使用 socket io 将值从我的树莓派 在 python 2 7 9 中 发送到我的 nodeJS 服务器 我的目标是通过 websocket 连接从我的 pi 连续发送许多值到我的节点服务器 本地 该服务器应该获取这些值并将
  • 在 Python 中通过 TCP 套接字发送文件

    我已经成功地将文件内容 图像 复制到新文件 然而 当我通过 TCP 套接字尝试同样的事情时 我遇到了问题 服务器循环未退出 客户端循环在到达 EOF 时退出 但服务器无法识别 EOF 这是代码 Server import socket Im
  • WebSocket 和负载平衡是瓶颈吗?

    当有一堆充当 WebSocket 无人机的系统和这些无人机前面的负载均衡器时 当 WebSocket 请求进入 LB 时 它会选择一个 WebSocket 无人机 并建立 WebSocket 我在 ELB 上使用 AWS ELB tcp S
  • 从 Windows 命令行连接到 websocket

    是否可以从 Windows 命令行连接到 websocket 我已经从 Mac 终端使用了 WSCAT 但我似乎找不到替代方案 任何帮助 将不胜感激 Windows 中没有内置可与 WebSocket 配合使用的工具 虽然你可以使用teln
  • 在cypress中捕获websocket请求

    我试图捕获测试期间发生的所有请求 我的应用程序使用 WebSocket 并且使用拦截命令我无法捕获 wss 请求 有什么办法可以做到这一点吗 我认为拦截命令不能直接捕获网络套接字 一种方法是观察 ws 通信的结果 如下所示使用 Cypres
  • 如何修复无效的 API 密钥、IP 或操作权限错误?

    这是币安加密货币交易所 API 我试图获取帐户信息 但我无法做到这一点 它是官方 C Api 这是github链接 https github com binance exchange binacpp 这是终端上的错误 回答问题时 请轻松一点
  • 发起TCP连接关闭后如何接收数据?

    TCP 允许一侧发出 FIN 并让另一侧在结束其一侧的连接之前响应一些数据 我如何使用 NET 来实现这一点TcpClient 看来我必须使用Close发出FIN 但之后我不能再打电话Client Receive since Client被
  • 客户端如何获取session id? (网络套接字)

    有什么办法可以做到这一点吗 客户端 function connectWebSocket var socket new SockJS socket stompClient Stomp over socket stompClient conne
  • 标签库支持命名空间:http://xmlns.jcp.org/jsf/core,但没有为名称定义标签:websocket

    我正在将 jsf 2 2 升级到 jsf 2 3 使用 Wildfly 11 0 0 Beta 作为服务器 我按照本网站上的说明进行操作 http arjan tijms omnifaces org p jsf 23 html 1396 h
  • 使用 Netty 将 websocket 与在 tomcat 中运行的 Spring Web 应用程序集成

    我有一个使用 Netty 的 Web 套接字服务器实现 例如监听端口 8081 和一个在 Tomcat 中运行的单独的 Spring Web 应用程序 在端口 80 中运行 我想以某种方式将所有来自 localhost 80 Websock
  • 简单的跨平台 TCP IP API?

    我不打算使用像 QT 或 wxWidgets 的 API 这样的大东西 我只想要可以在 Android iOS Windows Mac Linux 上运行的简单套接字 我正在制作一个事件驱动的纸牌游戏 所以 TCP 是最好的 本质上 我只想
  • 我应该害怕使用 UDP 进行客户端/服务器广播通话吗?

    我在过去的两天里阅读了每一篇StackOverflow问题和答案 以及googling当然 关于印地TCP and UDP协议 以便决定在我的用户应用程序和 Windows 服务之间的通信方法中应该使用哪一种 从我目前所看到的来看 UDP是
  • Spring Websocket升级请求处理

    我正在尝试使用Spring Websocket with Sockjs and STOMPjs 如上所述Spring Websocket 文档 https docs spring io spring docs 5 0 0 BUILD SNA
  • 无法分配请求的地址 - 可能的原因?

    我有一个由主服务器和分布式从服务器组成的程序 从属服务器向服务器发送状态更新 如果服务器在固定时间内没有收到特定从属服务器的消息 则会将该从属服务器标记为关闭 这种情况一直在发生 通过检查日志 我发现从站只能向服务器发送一个状态更新 然后永
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli
  • 通过 PHP 连接到 socket.io(nodejs)

    我需要通过 php 连接到 websocket 发送数据并立即断开连接 无需等待套接字的响应 我用了大象io http elephant io 但更新库后不起作用 请告诉我如何通过 PHP 连接到 websocket 我也遇到了这个问题 学
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp

随机推荐

  • 在nginx反向代理后面处理flask url_for

    我有一个使用 nginx 进行反向代理 ssl 终止的 Flask 应用程序 但是在 Flask 中使用 url for 和重定向时遇到了麻烦 nginx conf 条目 location flaskapp proxy pass http
  • 如果表单没有焦点,则不会调用 OnPaint

    我有一个带有自定义绘画的用户控件 据我所知 构造函数正确设置了样式 基本代码 public partial class LineChart2 UserControl public LineChart2 InitializeComponent
  • 更改 const 对象 - 没有警告?另外,什么情况下是UB?

    为什么下面的代码没有警告呢 int deserialize students const Student dest const int destCapacityMax FILE ptr file int i 0 ptr file fopen
  • 具有自定义模板的 STL 迭代器

    我有以下模板方法 template
  • 如何重定向到移动网站但保留主题标签?

    我希望拥有它 以便当用户加载我们的页面时 它会检查他们是否在移动设备上 然后将他们重定向到我们网站的移动版本 但保留原始哈希标签他们关注的链接 我尝试使用 javascript 中的哈希标签设置新位置 它在 Chrome 中工作 但在 Sa
  • 创建 ArrayList 元素的数组

    我想创建一个包含 ArrayList 元素的数组 我试过了 ArrayList
  • 创建一个仅指向另一个数组的一部分的数组?

    我有一个包含引用类型元素的巨大数组 并且我想创建许多其他数组 这些数组本质上只是指向该一个大数组的特定部分 换句话说 我想创建 索引器 或 具有长度的指针 在 C 中 使用指针很容易做到这一点 并为每个指针分配一个长度 例如创建一个包含具有
  • 在 iOS 上使用可调整大小的图像时避免混合图层

    我试图避免 iOS 上的混合层以提高性能 但是 我注意到我使用的可调整大小的图像backgroundView of my UITableViewCell被标记为混合层 事实上 使用任何可调整大小的图像 即使是没有透明度的 JPEG 都会导致
  • 如何使用 rspec 配置 Sorbet?

    我有一个简单的测试 但是describe关键字在冰糕测试中不起作用 我在这些方法上收到的错误 Method describe does not exist on T class of
  • 增大/缩小 WPF 动画

    在 WPF 中 当用户获得焦点时TextBox 我想要一些动画 可以使TextBox变成多行并使其Width更大 当他打字时 并且当焦点丢失时 TextBox恢复到原来的大小 尺寸未知 另外 最终 TextBox需要在 WPF 内DataG
  • Gunicorn 与 unix 套接字不工作给出 502 bad gateway

    我正在关注http www obeythetestinggoat com book chapter 08 html http www obeythetestinggoat com book chapter 08 html书上说要添加一个un
  • 如何更改 Notepad++ 更改文本行的背景颜色?

    更新 未保存 的文本行有亮粉色 ffc286 背景色 更改和保存的文本行有亮绿色 b5ffb5 此背景对于任何颜色样式都是相同的 我在样式配置器中找不到它 我以为它可能是增量突出显示 但事实并非如此 并且它不在全局设置中 我已经在寻找这个值
  • 授予子网中所有计算机的 mysql 访问权限

    我有一个在 Windows 上运行的 mysql 实例 和架构 我可以通过基于 localhost 作为服务器的连接字符串进行访问 现在我希望能够从同一子网上的另一台计算机访问该数据库 如果可能的话 我想使用单个用户 但允许它从同一子网上的
  • 在 n 层系统中,您应该从数据访问层向业务层返回哪些对象

    例如 如果您有一个名为 Person ID Name 等 的数据库表 数据访问层应将什么样的对象返回给业务层 我在想这样的事情 data access tier public class DataAccess public interfac
  • 具有多个参数的 Blazor EventCallback - 如何响应父主机控件中的事件

    我有一个带有 EventCallBack 参数的 blazor 组件 该组件利用允许多个参数的新结构格式 Parameter public EventCallback lt EmployeeShiftDay DateTime DateTim
  • Java中泛型参数类的反射?

    想象一下以下场景 class MyClass extends OtherClass
  • TableView 复选标记

    我想在选择字典数据数组时在表格视图中放置复选标记 例如 数组包含 10 个模型名称 它是字典 它包含子模型 我的问题是 当我选择子模型时 模型名称自动获得复选标记 现在我为不同的模型和子模型添加了复选标记 但是我们如何根据子模型添加复选标记
  • jquery 在视口检查器中同时检查多个元素

    我有一个 jQuery 函数来检查元素是否在视口中 如果是 它会添加 animate 类来启动动画并使元素可见 上面的方法有效 但现在 有多个元素 jQuery 仅针对该类的第一个元素blogcard 然后执行addClass animat
  • 证书对 Intranet SSL 有用吗?

    我的任务是开发命令行软件的内联网接口 现在我正在研究安全选项 我们的命令行应用程序已经完成 但我还没有开始编写 Web 界面 我不确切地知道潜在客户的安全要求是什么 尽管我相信ssh对于命令行界面来说通常是可以接受的 考虑到这一点 我请求帮
  • WebSocket 和纯 TCP 之间的根本区别是什么?

    我读过关于WebSockets http en wikipedia org wiki Web Sockets我想知道为什么浏览器不能像任何其他桌面应用程序一样简单地打开简单的 TCP 连接并与服务器通信 为什么可以通过 websocket