本机应用程序到服务器通信

Posted

技术标签:

【中文标题】本机应用程序到服务器通信【英文标题】:native app to server communication 【发布时间】:2014-04-11 12:08:43 【问题描述】:

我正在编写一个移动交易应用程序 (android/ios),我需要有关将应用程序连接到服务器 (messageQ) 的最佳方式的建议

如果我使用原始 TCP 连接,如果我的用户位于公司 wifi 后面(受防火墙保护),他们会有问题吗?如果是,在这种情况下,web socket 是不是更好的解决方案?

对于后端服务器,在使用 zeroMq 进行研究之后,我相信像 rabbitmq 这样的成熟代理是一个更好的选择。现在,如果我使用本地应用程序中的 Web 套接字连接,Rabbit MQ 有一个 sockJS-AMQP 桥接器。但我不确定是否有 java 和 iOS Web 套接字客户端与 sockJS 服务器对话。 非常感谢任何有经验的观点

【问题讨论】:

【参考方案1】:

您考虑过使用 MQTT 吗?

如果您不需要 AMQP,也可以直接使用 MQTT 代理,例如 http://mosquitto.org/ 或 http://www.hivemq.com/

在这里 (https://github.com/owntracks),您可以找到一些适用于 iPhone 和 Android 的现成库。

为了解决防火墙问题,MQTT 可以通过 HTTP 使用。

您可以在这里阅读: http://www.hivemq.com/mqtt-over-websockets-with-hivemq/ 或者 这里http://mqtt.org/wiki/doku.php/mqtt_over_websockets

这篇文章也可以帮助你:(https://www.ibm.com/developerworks/community/blogs/sowhatfordevs/entry/using_mqtt_protocol_advantages_over_http_in_mobile_application_development5?lang=en)

对于一个 iPhone 应用程序,我直接使用 MQTT 并作为带有 MQTT 插件的服务器 RabbitMQ http://www.rabbitmq.com/mqtt.html

希望对你有用

【讨论】:

谢谢加斯。在端口 80 或 443 上使用 AMQP 会有任何防火墙问题吗?我相信这些端口会被防火墙打开,但不确定防火墙是否明确阻止这些端口上的非 HTTP 流量 其实我不知道,这取决于防火墙,但通常这不是一个好习惯,如果您使用 amqp over http 应该没有任何问题。只是几个问题.. 你需要 AMQP 消息吗?您的目标是接收推送消息到移动应用程序吗?我认为您必须开发一些近乎实时的应用程序,将交易信息更新到移动设备,对吗?

以上是关于本机应用程序到服务器通信的主要内容,如果未能解决你的问题,请参考以下文章

哪个是 websocket 协议的更好方法?本机 ios 或混合或网络应用程序?

连接会话

DNS域名解析的过程

从android与socket.io通信

Java 中使用serversocket通信

编写本机代码作为后台从服务器获取数据[关闭]