如何在java中向客户端广播数据

如何在java中向客户端广播数据,java,desktop-application,Java,Desktop Application,我正在编写一个小型桌面应用程序,它将向使用此应用程序的客户端显示通知。因此,我的应用程序应该从存储所有通知的服务器获取通知。因此,如果有100个客户端使用此应用程序,并且如果我向服务器添加一些通知,我如何将这些数据发送到100客户端…请告诉我可以使用什么API或哪种技术来实现此功能。此应用程序是桌面应用程序有一些可能性: 1.通过套接字、服务器套接字/套接字/多播 推送通知:在每个客户机上打开一个侦听套接字,并从服务器打开一个连接,以便从服务器向客户机发送通知。 拉入通知:打开服务器上的侦听套接

我正在编写一个小型桌面应用程序,它将向使用此应用程序的客户端显示通知。因此,我的应用程序应该从存储所有通知的服务器获取通知。因此,如果有100个客户端使用此应用程序,并且如果我向服务器添加一些通知,我如何将这些数据发送到100客户端…请告诉我可以使用什么API或哪种技术来实现此功能。此应用程序是桌面应用程序

有一些可能性: 1.通过套接字、服务器套接字/套接字/多播 推送通知:在每个客户机上打开一个侦听套接字,并从服务器打开一个连接,以便从服务器向客户机发送通知。 拉入通知:打开服务器上的侦听套接字,例如每10秒左右打开一个从客户端到服务器的连接,以查找服务器上的新通知。 多播:通过一个API调用向多个客户端发送相同的消息。 2.JDBC/JPA:通过数据库传输消息(如果有的话)。 3.JMS:使用消息主题

最好的方法取决于你的需要

很简单

1) Make Arraylist of socket that has socket of all clients. // i.e when new client connected then add its socket into th ArrayList.
2) When ever there is any update just iterate through the ArralyList and send notification to all the connected clients.

可能还有两个,但我知道那两个处理这些场景类型的模式。观察者和发布订阅者

它们非常相似,不同之处在于,对于观察者模式,标准实现可能会造成内存泄漏,而在发布订阅者场景中,发布订阅者和订阅者都不知道彼此

看看下面的链接,可能会给你一个更好的想法


您可以使用JMS广播。有两种模式可以帮助您,Observer和publish–subscribe。你应该看看那些。如上所述,JMS是一个选项,但您可能不需要在您的应用程序中使用这种复杂性application@Desorder:你能详细说明一下发布订阅的方法吗