コード例 #1
0
ファイル: POGService.cs プロジェクト: WouterThys/POGApp
        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);
        }
コード例 #2
0
ファイル: POGService.cs プロジェクト: WouterThys/POGApp
        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);
        }
コード例 #3
0
ファイル: POGService.cs プロジェクト: WouterThys/POGApp
 public void Register(long id)
 {
     if (id == Client.C_ID)
     {
         cCallback = CurrentCallback;
     }
     else
     {
         wCallback = CurrentCallback;
     }
 }
コード例 #4
0
ファイル: POGService.cs プロジェクト: WouterThys/POGApp
 public void UnRegister(long id)
 {
     if (id == Client.C_ID)
     {
         cCallback = null;
     }
     else
     {
         wCallback = null;
     }
     Disconnect(id);
 }
コード例 #5
0
ファイル: POGService.cs プロジェクト: WouterThys/POGApp
        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;
                        }
                    }
                }
            }
        }