示例#1
0
        private void HandleLeaveAck(LeaveAckMessage msg)
        {
            _leaveAcksReceived++;

            if (_leaveAcksReceived == _leaveAcksExpected)
            {
                var leaveEnd = new LeaveEndMessage()
                {
                    SourceID      = _config.ID,
                    DestinationID = Constants.NULL_DESTINATION,
                    NodeCount     = _nodeCount - 1
                };

                SendMessage(leaveEnd, _group);
            }
        }
示例#2
0
        private void _tcpServer_OnReceiveMessage(object sender, ReceiveMessageEventArgs e)
        {
            LogBroker.Log(string.Format("RX {0} from {1}",
                                        e.Message.Type,
                                        e.Message.SourceID));

            switch (e.Message.Type)
            {
            case MessageType.KeyDistribute:
                var msg = e.Message as KeyDistributeMessage;
                _processor.Add(msg.Keys);

                var leaveAck = new LeaveAckMessage()
                {
                    SourceID      = _config.ID,
                    DestinationID = Constants.NULL_DESTINATION
                };

                SendMessage(leaveAck, _group);
                break;
            }
        }