【发布时间】:2018-01-06 16:51:10
【问题描述】:
我创建了一个包含两种对话类型的聊天:私人(单播)和群组(多播,我必须使用多播)。
我必须创建不同的组(即我加入了 “Veterans” 组,而我的大学加入了 “Beginners” 组)。 “Beginners” 组无法接收在“Veterans”组发送和接收的消息。
为此,我的问题是:我必须创建不同的多播组吗?或者验证,如果用户发送的消息是针对组“Veterans”或“Beginners,例如通过组的名称?
【问题讨论】:
我创建了一个包含两种对话类型的聊天:私人(单播)和群组(多播,我必须使用多播)。
我必须创建不同的组(即我加入了 “Veterans” 组,而我的大学加入了 “Beginners” 组)。 “Beginners” 组无法接收在“Veterans”组发送和接收的消息。
为此,我的问题是:我必须创建不同的多播组吗?或者验证,如果用户发送的消息是针对组“Veterans”或“Beginners,例如通过组的名称?
【问题讨论】:
您没有必须使用多播来实现这一点,但据我所知,这可能是一个合理的设计决策。
多播就是这样,拥有单独的多播组有助于在逻辑级别拆分流,但不一定在网络级别。
此外,您的应用程序中需要具有将组名(例如“退伍军人”)转换为多播地址的功能。此映射需要在您的所有聊天客户端之间保持完全同步,否则可能会出现“交叉聊天”。
“在“退伍军人”组发送和接收的消息不能 在“初学者”组收到”。
这里的关键词是不能。多播将保持流分离,但从安全角度来看,它只会阻止临时用户窃听未经授权的组。在混杂模式下在同一子网上设置网卡将显示所有多播对话,同时完全不被检测到。
因此,如果您正在寻找 “不能” 的绝对保证,多播是不够的。
【讨论】: