Newer
Older
SensorHub / SensorHub.Servers / ThirdpartyServer.cs
root on 17 Sep 2021 1 KB first commit
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;
            }
        }                       
    }
}