我正在设计一个需要定期更新服务器的应用程序,但我不确定如何去发送这些更新。将消息发布到服务器的设计建议
这就是我想要做的:
当我的活动开始时,我必须发送一个初始连接消息到服务器。连接建立后,我会每秒向服务器发送一条新消息。当用户执行服务器需要了解的某些操作时,该消息将被添加到队列中。每隔一秒左右,我的应用程序就会检查队列中是否发送消息。如果有一个可用,它将被发送。如果队列为空,则应发送简单的Keep Alive消息来维护连接。
我的问题是,对我来说实施这个最好的策略是什么?我应该使用单独的线程吗?还是服务?还是AsyncTasks?
我的想法至今:连接不需要保持过去 活动的生命周期,所以在我看来,服务将 是矫枉过正。
我应该如何处理调度更新?我应该使用Looper使用MessageQueue吗?或者一个ScheduledExecutorService?还是一个处理程序?
我的想法至今: 我的理解是的MessageQueue块,直到它接收 消息发送。 我不确定这是我想要的。我的计划是在队列为空时发送Keep 活动消息 ,而不是阻塞,直到有新消息到达。
我对这类东西完全陌生,所以我可能会用完全错误的方式来解决这个问题。我很乐意听到您可以提供的任何建议。
如果你有20000个用户,那么每一秒都会显得有点多,那就是每秒20000次点击。 – Jack
对于大多数应用程序来说这肯定会成为问题,但我不认为这是我的情况。服务器位于机器人上,一次只能有几个用户连接到它。另外,如果在几秒钟内没有收到消息,连接就会终止,所以我不得不经常发送消息。 – theisenp
我会用那个Arduino – Merlin