通过数据报/多播向客户端通知List

时间:2012-10-23 12:55:18

标签: java networking serialization multicast

我正在构建一个客户端 - 服务器应用程序。 服务器保留一个对象列表:

 LinkedList<MyObject> objects;

每次添加或删除对象时,客户端都应该知道这一点。 他们已加入多播组。 什么是让他们收到变更通知的最佳方式?

我应该创建一个扩展LinkedList并使用Serializable实现它的类吗?

1 个答案:

答案 0 :(得分:2)

每次更新时多次更新更新的列表肯定很简单,但可能存在问题。

  • 如果列表变大或更新频繁,则可扩展性可能是一个问题。考虑将更改作为“增量”发送到列表,而不是每次都发送整个列表。

  • 使用ObjectOutputStream进行序列化可能会很昂贵,但您可以通过编写自定义readObjectwriteObject方法来提高性能。 (列表的序列化已经优化了......)

  • 您无需子类LinkedList来执行此操作。它已经是Serializable

  • 您很可能需要同步列表结构以避免竞争条件和混乱,但这会产生潜在的瓶颈。考虑将List替换为QueueDeque的并发实施。