首页 > 解决方案 > 一般如何处理 IIS 上 80 端口上的 websockets 以及使用 ISAPI 时

问题描述

我们正在使用 IIS 和 ISAPI DLL 来交付我们的 Web 应用程序。我们可以在我们的 ISAPI 应用程序中看到来自浏览器的 websocket 升级请求。我们可以接受请求并将连接传递给线程以继续对话。该线程现在将成为“websocket 服务器”,因此从这个意义上说,我们能够处理传入的 http(以及 443 上的 https),然后从 http 切换到 websocket,对吗?

我假设微软的 websockets 实现只适用于 asp.net?

有人对我说“将 websocket 服务器放在不同的端口上,并让 javascript 连接到该端口。” 但是,websocket 服务器没有使用 HTTPS (SSL)。

例如: var socket = new WebSocket('ws://echo.websocket.org');

我有很多书和例子,但这个简单的问题让我难以理解。

标签: iiswebsocketisapiport80

解决方案


该线程现在将成为“websocket 服务器”,因此从这个意义上说,我们能够处理传入的 http(以及 443 上的 https)然后从 http 切换到 websocket,对吗?

是的,如果客户端发送包含 的请求Upgrade: websocket,websocket 服务将从 http 切换到 websocket。

我假设微软的 websockets 实现只适用于 asp.net?

如果您指的是 websocket .net 库,它只能与 .net 应用程序(如 asp.net)一起使用,它是基于 .net 框架开发的。

例如: var socket = new WebSocket('ws://echo.websocket.org');

据我所知,websocket 还包含像 https 这样的安全连接。

如下图所示:

在此处输入图像描述

更多关于 http 和 websocket 区别的细节,你可以参考下面的文章:

https://developerinsider.co/difference-between-http-and-http-2-0-websocket/


推荐阅读