是否可以在没有 .NET 4.5 主机的情况下使用当前 Web 套接字

Can web sockets be used today without a .NET 4.5 host?

本文关键字:情况下 套接字 Web 主机 NET 是否      更新时间:2023-09-26

我希望通过每个人都使用 Web 套接字连接到的云服务将我的 WinJS 应用程序连接到移动浏览器客户端。

我使用 socket.io 构建了一个解决方案,只要我的节点.js服务器托管在本地主机上,它就可以很好地工作:)当我将服务器部署到 Azure 时,Windows 8 应用返回一个错误,指出它无法在本地上下文中加载外部内容(在调用 socket.io 的 connect() 之后)。

查看 MSDN 上的 Web 套接字示例,我认为我应该至少在我的应用程序和公共云服务之间使用 Windows.Networking.Sockets 中的内置功能,因为它不会尝试加载外部资源。

我的问题是:隧道另一端有哪些选择?它是否需要带有 IIS 8 的 .NET 4.5 主机(因为 IIS 7 不支持 WS)?我认为这些今天还不存在,所以我想知道这里的开发故事是什么。

根据我最终用于服务器的内容,我想我将不得不再次使用 socket.io 或 SignalR 来为客户端提供服务(大多数不支持 Web 套接字,我需要一个好的跨浏览器库:))

如果你的后端是 NodeJS 应用程序,你不需要 IIS 服务器或与 .NET Framework 相关的任何内容。

托管服务提供商列表由 NodeJS 的作者在 https://github.com/joyent/node/wiki/Node-Hosting 维护(该列表可能已过时,因为我在那里看不到 Azure)。

我不明白为什么你的服务器在部署到 Azure 时不应该工作。你用npm install azure吗?


我有一种感觉,您对Web套接字Socket.io 感到困惑。

Socket.io 是一个实时传输框架,它可能会也可能不会使用 Web 套接字根据客户端的浏览器在客户端进行传输。

参考: 常见问题 — Socket.IO

(回答我自己的问题)我所在的代理不允许来自 Win8 应用程序中 socket.io 的 Web 套接字连接,因此它回退到需要加载外部资源的方法。

绕过有问题的代理,连接工作正常,我可以按预期使用应用程序中的 socket.io。我在 Azure 上托管另一端(根据节点.js + 他们提供的 socket.io 教程),它可以工作。我仍然不知道想要使用内置 Web 套接字库的开发人员应该为主机使用什么,但我想我们必须等待 IIS 8 出来。

现在,我需要验证应用是否可以通过此库的认证。