0

我正在使用正在侦听端口 80 的服务器

我想让本机和 websocket 客户端都连接到我的服务器。

只有websockify在不同的端口上运行时,它才有效,并将流量转发到套接字服务器。

不幸websockify的是没有很好的文档记录,也没有可用的教程。

如果我只想创建一个服务器,它只监听一个端口,并且接受 websocket 和本机 TCP 套接字,我应该从哪里开始?

4

2 回答 2

3

如果您的服务器正在侦听端口 80 上的连接,它是在说 http 吗?因为如果不是,请不要在端口 80 上监听:端口 80 已被确立为承载 http 流量。

接下来 - ipaddress 和端口一起是端点的唯一标识符。如果远程客户端在端口 80 上连接到您的服务器,除了目标 ip 和端口之外,网络层没有其他信息可以确定哪个应用程序侦听端口 80,值得数据包。鉴于提供多个 IP 地址非常困难 - 通过 NAT 不可能 - 真正可用于将数据包路由到正确侦听器的唯一信息是端口。所以你不能让两个应用程序在同一个端口上监听。

最后,在初始 HTTP 协商之后,websocket 的行为类似于本机套接字。这意味着websocksify,您可以教您的本地服务器应用程序检测 Websocket 客户端的连接尝试,并可选择在进入“本地”模式之前执行初始协商,而不是使用 。

编写 Websocket 服务器简要介绍了您的本机服务器需要实现的内容。

于 2016-04-21T11:53:39.930 回答
-2

如果您看一下WebSocket,您会发现它是 TCP 层之上的协议。因此,您的服务器套接字只能绑定一次到端口 80,这取决于您是使用普通 TCP、WebSocket 还是您的自定义协议。没有魔法可以从 WebSocket 切换到 TCP,反之亦然。

于 2016-04-21T11:43:24.253 回答