public bool Connect(Client client) { if (!clients.ContainsValue(CurrentCallback) && !HasClient(client.Name)) { lock (syncObj) { clients.Add(client, CurrentCallback); clientList.Add(client); foreach (Client key in clients.Keys) { IPOGCallback callback = clients[key]; try { callback.RefreshClients(clientList); callback.UserJoin(client); } catch { clients.Remove(key); return(false); } } } return(true); } return(false); }
public bool SendFile(FileMessage fileMsg, Client receiver) { foreach (Client rcvr in clients.Keys) { if (rcvr.Name == receiver.Name) { Message msg = new Message { Sender = fileMsg.Sender, Content = "I'M SENDING FILE.. " + fileMsg.FileName }; IPOGCallback rcvrCallback = clients[rcvr]; rcvrCallback.ReceiveWhisper(msg, receiver); rcvrCallback.ReceiverFile(fileMsg, receiver); foreach (Client sender in clients.Keys) { if (sender.Name == fileMsg.Sender) { IPOGCallback sndrCallback = clients[sender]; sndrCallback.ReceiveWhisper(msg, receiver); return(true); } } } } return(false); }
public void Register(long id) { if (id == Client.C_ID) { cCallback = CurrentCallback; } else { wCallback = CurrentCallback; } }
public void UnRegister(long id) { if (id == Client.C_ID) { cCallback = null; } else { wCallback = null; } Disconnect(id); }
public void Whisper(Message msg, Client receiver) { foreach (Client rec in clients.Keys) { if (rec.Name == receiver.Name) { IPOGCallback callback = clients[rec]; callback.ReceiveWhisper(msg, rec); foreach (Client sender in clients.Keys) { if (sender.Name == msg.Sender) { IPOGCallback senderCallback = clients[sender]; senderCallback.ReceiveWhisper(msg, rec); return; } } } } }