Beispiel #1
0
        //暂不启用
        public void OnlineHeartbeat(Guid accountid, Guid webid)
        {
            IPluginServiceCallBack callback = OperationContext.Current.GetCallbackChannel <IPluginServiceCallBack>();

            AddCallback(webid, callback, accountid);
            try
            {
                pluginServiceImpl = ServiceLocator.Instance.GetService <IPluginService>();
                pluginServiceImpl.OnlineHeartbeat(accountid, webid);
            }
            catch (Exception ex)
            {
                throw new FaultException <FaultData>(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex));
            }
        }
Beispiel #2
0
        public void Init(Guid webid, List <Permission> permission)
        {
            IPluginServiceCallBack callback = OperationContext.Current.GetCallbackChannel <IPluginServiceCallBack>();

            AddCallback(webid, callback);
            try
            {
                pluginServiceImpl = ServiceLocator.Instance.GetService <IPluginService>();
                pluginServiceImpl.Init(webid, permission);
            }
            catch (Exception ex)
            {
                throw new FaultException <FaultData>(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex));
            }
        }
Beispiel #3
0
 public void Remove(IPluginServiceCallBack callback)
 {
     if (!callbackChannelList.Values.Contains(callback))
     {
         Console.WriteLine("不存在待移除通道");
     }
     else
     {
         lock (SyncObj)
         {
             callbackChannelList.Remove(callbackChannelList.First(c => c.Value == callback).Key);
             Console.WriteLine("移除了一个通道");
         }
     }
 }
Beispiel #4
0
 /// <summary>
 /// 将回调通道加入到通道列表中进行管理
 /// </summary>
 /// <param name="callbackChannel"></param>
 public void Add(Guid WebID, IPluginServiceCallBack callbackChannel)
 {
     //if (callbackChannelList.Keys.Contains(WebID))
     //{
     //    Console.WriteLine("已存在重复通道");
     //}
     //else
     {
         lock (SyncObj)
         {
             callbackChannelList[WebID] = callbackChannel;
             //callbackChannelList.Add(WebID, callbackChannel);
             Console.WriteLine("添加了新的通道");
         }
     }
 }
Beispiel #5
0
 /// <summary>
 /// 注册回调  在线用户  未实现
 /// </summary>
 /// <param name="webid"></param>
 /// <param name="callback"></param>
 void AddCallback(Guid webid, IPluginServiceCallBack callback, Guid?accountid = null)
 {
     ChannelManager.Instance.Add(webid, callback);//添加通信管道
     OperationContext.Current.Channel.Closed += new EventHandler(Channel_Closed);
 }