带有 Android 的 WebSockets:URL 在哪里?
Posted
技术标签:
【中文标题】带有 Android 的 WebSockets:URL 在哪里?【英文标题】:WebSockets with Android: where's the URL? 【发布时间】:2013-10-26 15:32:17 【问题描述】:我目前正在开发一款适用于 android 的聊天应用,我知道它需要一个中间服务器作为客户端之间的联系点。我也知道 XMPP 是一个久经考验的解决方案,但是我主要是 C# 开发人员,我想把时间花在 WebSockets 上,因为从我读到的内容来看,我相信它既 fast 又轻量级,虽然它需要某种形式的握手。
所以现在我已经下载了WebSocket4Net(这是来自SuperWebSocket 的一个分支?)。我能够创建一个带有各种本地 URL 的 WebSocket
对象,并且我知道 Autobahn 是适用于 Android 的可行 WebSockets 客户端库。然而,我不明白的是,我将如何让我的 Android 客户端连接到 Web 服务器(没有 LAN 连接,而是通过 Internet)。
现在我认为一个可能的解决方案是公开一个 WCF 端点,然后它可以很好地与WebSocket
配合使用,但这又会增加往返时间,首先破坏了 WebSockets 实现的目的。 ..(轻量级!)我还不如只使用 WCF 服务作为联系点。
然后我的问题是:我的 Android 客户端将与之交互的 URL 是什么?
【问题讨论】:
【参考方案1】:马特,
创建一个 C# 控制台应用程序,使用 WebSocket4Net 监听特定端口(例如 8000)。
然后将此应用程序部署到分配有静态 IP 或域名(例如 example.com)的服务器上。
现在在 android 应用程序中,您使用 Autobahn 连接到此 ip 或域地址。即网址将是 ws://example.com:8000
我希望这就是你要找的。p>
【讨论】:
嗯。所以在我的应用程序服务器上,我用这条线this.webSocket = new WebSocket("ws://localhost:13370/");
启动WebSocket
?但我似乎无法从我的客户(或websocket.org/echo.html,事实上)连接...
你的服务器 IP 地址是什么?它是一个静态 IP,因此互联网上的任何人都可以访问它。【参考方案2】:
我的错,WebSocket4Net 不是 SuperWebSocket 的一个分支,而是一个 WebSocket 客户端,所以它与我所寻找的完全不同。无论如何感谢@VinZ 的回答,我期待得到这个问题的解决方案:Alchemy Websockets: Can't host server on Azure。
这真的很麻烦,因为我的 Websocket 服务器在本地工作,但不在 Azure 上!
【讨论】:
以上是关于带有 Android 的 WebSockets:URL 在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
PostgreSQL 通知和带有 Rails 的 WebSockets
带有 C# 实现的 ASP.NET HTML5 WebSockets
带有 Node.js 和 socket.io 的 WebSockets