public void RegisterClient(string clientName) { if (clientName != null && clientName != "") { try { IServiceCallBack callback = OperationContext.Current.GetCallbackChannel <IServiceCallBack>(); lock (locker) { //remove the old client if (clients.Keys.Contains(clientName)) { clients.Remove(clientName); } clients.Add(clientName, callback); this.NotifyServer(new EventDataType() { ClientName = clientName, EventMessage = "NewMemberArrived" }); } } catch (Exception) { } } }
public void Add(string username, IServiceCallBack channel) { if (!userChannels.ContainsKey(username) && !userChannels.ContainsValue(channel)) { userChannels.Add(username, channel); } }
public bool Exists(IServiceCallBack channel) { bool flag = false; lock (userChannels) { foreach (var item in userChannels) { if (item.Value.Equals(channel)) { flag = true; break; } } } return flag; }
//Callbacks and Server Notification #region public void RegisterClient(long clientId) { if (clientId > 0) { try { IServiceCallBack callback = OperationContext.Current.GetCallbackChannel <IServiceCallBack>(); lock (locker) { //remove the old client if (clients.Keys.Contains(clientId)) { clients.Remove(clientId); } clients.Add(clientId, callback); } } catch (Exception ex) { } } }