public Message SendMessage(Peer peer, string message)
        {
            if (peer == null || peer.ID == null || string.IsNullOrEmpty(message))
            {
                return(null);
            }

            fLogger.WriteDebug("SendMessage: {0}, `{1}`", peer.EndPoint, message);

            var msg = new Message(DateTime.UtcNow, message, fLocalPeer.ID.ToString(), peer.ID.ToString());

            fDatabase.SaveMessage(msg);

            bool encrypted = false;

            if (peer.Profile != null && !string.IsNullOrEmpty(peer.Profile.PublicKey))
            {
                message   = Utilities.Encrypt(message, peer.Profile.PublicKey);
                encrypted = true;
            }

            SendData(peer.EndPoint, ProtocolHelper.CreateChatMessage(DHTTransactions.GetNextId(), fDHTClient.LocalID, message, encrypted, msg.Timestamp.ToBinary()));

            return(msg);
        }
Exemple #2
0
        public void Test_CreateChatMessage()
        {
            var tid    = DHTTransactions.GetNextId();
            var nodeId = DHTId.CreateRandom();
            var msg    = ProtocolHelper.CreateChatMessage(tid, nodeId, "test", false, 0);

            Assert.IsNotNull(msg);
            // TODO: test contents
        }
 public void SendMessage(Peer peer, string message)
 {
     SendData(peer.EndPoint, ProtocolHelper.CreateChatMessage(message));
 }
Exemple #4
0
 public void SendMessage(Peer peer, string message)
 {
     SendData(peer.EndPoint, ProtocolHelper.CreateChatMessage(DHTHelper.GetTransactionId(), fDHTClient.LocalID, message));
 }