程序运行起来之后,需要用多个telnet客户端来进行测试
连接的命令为conn deviceNumber
广播命令为broa message
需要注意的是:示例代码有bug,
broadcastDict本身的存储是CXXX和设备集合的对应
broadcastDict["C001"] = new List<string> { "V001" }; broadcastDict["C002"] = new List<string> { "V001", "V002" }; broadcastDict["C003"] = new List<string> { "V002" };
但是后面使用的时候,里面作为判断使用的是session.DeviceNumber
lock (broadcastSyncRoot) { //key: 要获取的值的键。 //value:当此方法返回值时,如果找到该键,便会返回与指定的键相关联的值; //否则,则会返回 value 参数的类型默认值。该参数未经初始化即被传递。 bool flag = broadcastDict.TryGetValue(session.DeviceNumber, out targetDeviceNumbers); if (flag == false) { return; } }
提交了一个issue给作者
https://github.com/kerryjiang/SuperSocket/issues/25
不过按照作者的答复来看,貌似都不是问题,只是用来展示消息局部广播