Java 通过数据报/多播通知客户列表
我正在构建一个客户机-服务器应用程序。 服务器保留一个对象列表:Java 通过数据报/多播通知客户列表,java,networking,serialization,multicast,Java,Networking,Serialization,Multicast,我正在构建一个客户机-服务器应用程序。 服务器保留一个对象列表: LinkedList<MyObject> objects; LinkedList对象; 每次添加或删除对象时,客户端都应该知道这一点。 他们已经加入了多播组。 让他们随时了解变更的最佳方式是什么 我应该创建一个扩展LinkedList的类并用Serializable实现它吗?每次更新列表时对其进行多播当然很简单,但可能会有问题 如果列表变大或更新频繁,则可能会考虑可伸缩性。考虑将更改发送到“Deltas”列表,
LinkedList<MyObject> objects;
LinkedList对象;
每次添加或删除对象时,客户端都应该知道这一点。
他们已经加入了多播组。
让他们随时了解变更的最佳方式是什么
我应该创建一个扩展LinkedList的类并用Serializable实现它吗?每次更新列表时对其进行多播当然很简单,但可能会有问题
- 如果列表变大或更新频繁,则可能会考虑可伸缩性。考虑将更改发送到“Deltas”列表,而不是每次发送整个列表。
- 使用
进行序列化可能成本高昂,不过您可以通过编写自定义ObjectOutputStream
和readObject
方法来提高性能。(列表的序列化已优化…)writeObject
- 要做到这一点,您不需要子类化
。它已可LinkedList
序列化
- 您很可能需要同步列表结构以避免竞争条件和混乱,但这将造成潜在的瓶颈。考虑同时使用<代码>队列> <代码>或<代码> Deque < /代码> .< /p> 替换<代码>列表>代码>。