CometD 如何处理长轮询中的端口?

问题描述

特定端口是否使用 CometD 在长轮询中处理来自客户端的所有请求/响应?如果不是,它如何为每个请求分配端口?

解决方法

CometD 客户端可以使用 HTTP 或 WebSocket 作为传输。

在这两种情况下,当 CometD 客户端需要打开一个新的 TCP 连接到服务器时,本地端口由操作系统分配在 ephemeral 端口范围内(这因操作系统而异)到操作系统)。

请注意,对于 HTTP,CometD 客户端通常最多打开 2 个连接(一个专用于长轮询,一个用于发布)。

对于 WebSocket,CometD 客户端只打开 1 个连接。

在服务器上,单个端口(侦听端口)用于接受来自 CometD 客户端的传入连接。