我正在编写一个由服务器控制的远程应用程序。客户端将是一种几乎一直都在使用的守护进程。问题是 - 这些远程命令是不可预测和稀疏的。服务器可能需要数小时或数天而不发送消息,或者它可以在一小时内发送几条消息。
我没有网络经验,所以我不确定这一切是如何工作的,我只需要指点去看看。
最好,最有效(最便宜)的方法是什么?我将使用AWS进行所有这些。
我想到的第一个选项是在数据库中存储与其用户ID关联的所有客户端的IP。调用AWS Lambda函数时,它会与与该用户ID关联的IP建立新连接,并发送消息,然后在lambda函数退出时关闭连接。
第二种选择是托管EC2实例,并主动保持与所有用户的连接。但这需要主持EC2 24/7与潜在的大量客户,并且可能会变得非常昂贵。
我不确定这里有什么最佳做法,甚至不知道要为这类事情寻找什么协议。例如,在第一个选项中,服务器如何连接到客户端?不会因为防火墙或其他东西而向前移动吗?
同样,我对网络编程没有任何经验,所以我会得到关于如何实现这一点的所有指示。
谢谢!