我希望通过云服务将我的WinJS应用程序连接到移动浏览器客户端,每个人都使用网络套接字连接。
我使用socket.io构建了一个解决方案,只要我的node.js服务器托管在localhost上就可以正常运行:)当我将服务器部署到Azure时,Windows 8应用程序会返回一个错误,说它无法加载外部本地上下文中的内容(在调用socket.io的connect()之后)。
查看MSDN上的Web套接字示例,我认为我应该使用Windows.Networking.Sockets中的内置功能至少在我的应用程序和公共云服务之间的内容,因为它不会尝试加载外部资源。
我的问题是:隧道另一端有哪些选项?是否需要带有IIS 8的.NET 4.5主机(因为IIS 7不支持WS)?我认为今天还没有,所以我想知道这里的发展故事是什么。
根据我最终用于服务器的内容,我认为我必须再次使用socket.io或SignalR来为客户端提供服务(大多数不支持Web套接字,我需要一个良好的跨浏览器库: ))
答案 0 :(得分:0)
如果您的后端是 NodeJS 应用,则 IIS服务器或与.NET Framework相关的任何内容。< / p>
主机提供商列表由NodeJS的作者在https://github.com/joyent/node/wiki/Node-Hosting维护(该列表可能已过时,因为我在那里看不到Azure)。
我不明白为什么在部署到Azure时您的服务器不应该工作。您使用的是npm install azure
吗?
我觉得您对 Web套接字和 Socket.io 感到困惑。
Socket.io是一个实时传输框架,可能或可能使用Web套接字在客户端基于客户端的浏览器进行传输。
答案 1 :(得分:0)
(回答我自己的问题) 我在我的Win8应用程序中不允许来自socket.io的Web套接字连接的代理背后,因此它回退到需要加载外部资源的方法。
绕过那个有问题的代理,连接正常,我可以按照预期使用我的应用程序中的socket.io。我在Azure上托管另一端(根据他们提供的node.js + socket.io教程)并且它可以工作。我仍然不知道开发人员想要使用内置的Web套接字库应该用于主机,但我想我们必须等待IIS 8出来。
现在我要确认应用程序可以通过此库的认证。