public void Disconnect() { iMessagingServiceCallback client = OperationContext.Current.GetCallbackChannel <iMessagingServiceCallback>(); int hash = client.GetHashCode(); if (clients.TryRemove(hash, out client)) { Console.WriteLine("client {0} disconnected at {1}, total clients: {2}", hash, DateTime.Now.ToString(), clients.Count); } }
public void PublishMessage(string msg) { iMessagingServiceCallback sender = OperationContext.Current.GetCallbackChannel <iMessagingServiceCallback>(); Task.Factory.StartNew(() => { string theTime = DateTime.Now.ToString(); Console.WriteLine("Received from {0} at {1}: {2}", sender.GetHashCode().ToString(), theTime, msg); string theMsg = string.Format("{0} | {1}", theTime, msg); BroadcastMessage bcast = new BroadcastMessage(sender, theMsg); msgQueue.Add(bcast); }); }
private void killClient(iMessagingServiceCallback client) { try { int hash = client.GetHashCode(); if (clients.TryRemove(hash, out client)) { Console.WriteLine("killed client {0} at {1}", hash, DateTime.Now.ToString()); } } catch (Exception e) { Console.WriteLine("Exception killing client {0}: {1}", client.GetHashCode().ToString(), e.Message); } }
public BroadcastMessage(iMessagingServiceCallback sender, string msg) { this.sender = sender; this.msg = msg; }