服务器套接字侦听客户端与轮询服务的Android即时通讯应用程序

我目前正在编写一个即时通讯应用程序的Android以及服务器应用程序,我跑我的笔记本电脑。 服务器应用程序连接到一个SQL数据库(在同一台机器上),并验证登录信息,创建新的帐户,插入其他会话信息到数据库。 到目前为止,所有这些工作,但是我需要决定一个策略,我将如何将发送的邮件从服务器传递到所需的收件人。

我到目前为止:

  1. 客户端连接到服务器并发送包括发件人,收件人和消息的消息信息

  2. 服务器将信息存储在数据库中,并向发送方客户端发送指示成功或失败的响应

  3. 发送方客户端更新其视图以反映数据库中的任何更改或指示失败

现在我有两个不同的想法如何处理邮件传递给收件人

A.在android应用程序中创建一个服务来轮询服务器在数据库中的更改

B.在android应用程序中创建一个服务器套接字,用于侦听来自服务器的连接请求,并让服务器尝试向客户端发送每个新的更新

请让我知道这些方法的一些利弊,或者如果他们也许是我没有提到的更好的东西。 另外,我主要使用java这个,但与一些kotlin代码,如果这有什么区别。 我是一个自学成才的程序员,正在为实践而努力,与我以前所做的任何事情相比,这真是一个巨大的项目。 我将不胜感激任何帮助。 谢谢。