//暂不启用 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)); } }
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)); } }
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("移除了一个通道"); } } }
/// <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("添加了新的通道"); } } }
/// <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); }