当前位置: 首页 > 知识库问答 >
问题:

使用WebSockets有服务器成本吗?

孙弘博
2023-03-14

我一直在远离PHP/MySQL的舒适区,因为语法/封装/过程的东西可能会令人沮丧。

共有1个答案

宋洲
2023-03-14

关于websockets通常是如何工作的,有很多很好的概述网站可以阅读,比如这里和这里。

简而言之,它们用某种类型的HTTP请求发起连接,然后在此之后,它们是客户端和服务器之间的直接TCP双向连接。

维护一个客户端的开放套接字需要一些服务器开销,因此如果您预计一次会有数万个这样的套接字,那么您必须确保服务器基础结构能够达到这样的规模。由于空闲套接字不占用任何CPU,CPU负载只与任何给定时间忙的套接字的数量成比例。

可以对服务器进行适当配置,以支持数十万个同时(主要是空闲的)webSocket连接,这样服务器的可伸缩性限制就会受到向所有这些连接的客户端发送流量的限制。如果您每隔几秒钟向一个客户机发送数据,并且您有成千上万个连接的客户机,那么使用任何技术都需要大量的服务器马力(和带宽)来完成这一任务,webSockets仍然可能比任何竞争技术都要好。但是,如果webSocket连接的客户端大多是空闲的,数据只是偶尔发送给它们,那么webSocket实现可以进行巨大而有效的扩展。

以下是关于该主题的一些其他参考资料:

Websockets和可伸缩性

推送通知是websocket强制的吗?

Comet库试图支持类似WebSocket的接口,即使没有直接的WebSocket支持。当它试图通过保持打开的HTTP连接来模拟双向TCP套接字时,有些低效的黑客就开始出现了。如果您使用的是真正的WebSockets,这不是一个问题。

 类似资料:
  • 在客户端,使用“new WebSocket('ws:/blahlah')”创建新的套接字处理程序 然后使用onOpen()方法就知道我们已连接到WS服务器 使用onMessage()方法,已知已从WS服务器接收到消息 onClose()方法指示套接字连接已关闭 所以从客户的角度来看是很清楚的。但是从服务器的角度来看,流程是如何进行的(就像上面的客户端一样),websocket服务器进程的确切含义是

  • 我有一个带sokjs套接字的节点应用程序。 一些HTML/JS客户端使用stomp over sock JS,但我不明白订阅是如何工作的: 客户端已连接,事件已记录,但范围为$scope。从不打电话通知。如何配置主题订阅? 编辑: 请注意,我一定清楚。 我使用sockjs模块作为websocket服务器。 没有太多的配置:

  • 如果我正确理解了服务器发送事件的原则,那么每次客户端注册到EventSource时,它实际上会打开一个到管理事件的资源的新HTTP连接。与其他HTTP请求相反,连接保持活动状态,因此专用于此客户端的服务器进程/线程将一直运行,直到客户端断开连接。 如果我们有1000个客户端使用SSE连接到一个应用程序,该怎么办?我们是否会有1000个进程/线程(做同样的事情)并发运行以处理SSE?我想我错了,但如

  • 问题内容: 双方的WebSockets和服务器发送的事件能够将数据推送到浏览器。在我看来,它们似乎是竞争技术。它们之间有什么区别?您何时会选择一个? 问题答案: Websocket和SSE(服务器发送事件)都能够将数据推送到浏览器,但是它们不是竞争技术。 Websockets连接既可以将数据发送到浏览器,也可以从浏览器接收数据。可以使用websockets的应用程序的一个很好的例子是聊天应用程序。

  • 本文向大家介绍简介Nginx服务器的Websockets配置方法,包括了简介Nginx服务器的Websockets配置方法的使用技巧和注意事项,需要的朋友参考一下 Nginx 1.3.13 已经发布了,该版本支持 Connection: upgrade 和 Upgrade 头,这就意味着支持WebSocket代理了.很多人都在等这个新特性以至于 “Nginx 支持 websockets 吗?” 成