using SensorHub.Servers; using SuperSocket.SocketBase; using SuperSocket.SocketBase.Protocol; using System; using System.Collections.Generic; using System.Runtime.Caching; namespace SensorHub.Servers { /* * 提供给第三方下发配置使用 */ public class ThirdpartyServer : AppServer<ThirdpartySession> { public IDespatchServer despatchCasicServer433; private readonly object SyncObj = new object(); public ThirdpartyServer() : base(new DefaultReceiveFilterFactory<ThirdpartyReceiveFilter, StringRequestInfo>()) { } protected override void OnStarted() { despatchCasicServer433 = this.Bootstrap.GetServerByName("CasicServer433") as IDespatchServer; base.OnStarted(); } public void DispatchMessage(int netType, string devCode, string concentratorCode, byte[] config) { switch (netType) { case 1: lock (this.SyncObj)//锁定 { CacheHelper.SetCache(concentratorCode, false); CacheHelper.SetCache(devCode, config); } despatchCasicServer433.DispatchMessage(concentratorCode, config); break; case 2: case 3: case 4: //对接收到的数据进行缓存,缓存数据保存24h lock (this.SyncObj)//锁定 { CacheHelper.SetCache(devCode, config); } break; default: break; } } } }