原生应用与服务器通信

4

我正在编写一个移动交易应用程序(Android/iOS),需要建议关于将应用程序与服务器(MessageQ)连接的最佳方法。

  • 如果我使用原始TCP连接,那么如果用户在公司Wi-Fi网络(由防火墙保护)后面,他们会遇到问题吗?如果是这样,那么Web套接字是否是更好的解决方案?

  • 在研究了ZeroMQ之后,我相信像RabbitMQ这样的完整代理是一个更好的选项。现在,如果我从我的本机应用程序使用Web套接字连接,Rabbit MQ有一个SockJS-AMQP桥。但我不确定是否有Java和iOS Web套接字客户端可与SockJS服务器通信。 非常感谢任何有经验的意见。

1个回答

4

你考虑过使用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 协议,并将 RabbitMQ 作为服务器并配合 MQTT 插件使用 http://www.rabbitmq.com/mqtt.html 希望能对您有所帮助。

谢谢Gas。使用AMQP在80或443端口上是否会有防火墙问题?我相信这些端口将被防火墙打开,但不确定防火墙是否会显式地阻止那些端口上的非HTTP流量。 - rajTho
1
其实我不知道,这取决于防火墙,但通常这不是一个好的做法,如果你使用AMQP over HTTP,你不应该有任何问题。只是几个问题.. 你需要一个AMQP消息吗? 你的目的是接收推送消息到移动应用程序吗?我认为你需要开发一些近实时的应用程序,将交易信息更新到移动设备上,对吗? - Gabriele Santomaggio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接