Esempio n. 1
0
        private void SendRequest(ClientType clientType, string subject, string group, RequestType requestType = RequestType.Heartbeat)
        {
            var datagram       = new Datagram();
            var remotingHeader = new RemotingHeader
            {
                Version = RemotingHeader.Version8,
                Code    = 35,
                Flag    = 0,
                Opaque  = 0
            };

            datagram.Header = remotingHeader;
            var request = new MetaInfoRequest
            {
                Subject       = subject,
                ConsumerGroup = group,
                AppCode       = _appCode,
                ClientType    = (int)clientType,
                RequestType   = (int)requestType,
                ClientId      = ClientId.CurrentClientId
            };

            datagram.PayloadHolder = new MetaInfoRequestPayloadHolder(request);
            _client.Send(datagram);
        }
Esempio n. 2
0
        public Datagram TransformRequest(Request request)
        {
            var header = new RemotingHeader
            {
                MagicCode = RemotingHeader.QmqMagicCode,
                Version   = RemotingHeader.Version8,
                Code      = CommandCode.PullMessage,
                Flag      = 0,
                Opaque    = (int)request.Id
            };
            var payloadHolder = new MesssagePullPayloadHolder((PullMessageRequest)request.Args);

            return(new Datagram
            {
                Header = header,
                PayloadHolder = payloadHolder
            });
        }
Esempio n. 3
0
        protected override void Ping(TransportClient client)
        {
            var heartbeat = new Request(null);
            var header    = new RemotingHeader()
            {
                MagicCode = RemotingHeader.QmqMagicCode,
                Version   = RemotingHeader.Version8,
                Code      = CommandCode.Heartbeat,
                Flag      = 0,
                Opaque    = (int)heartbeat.Id,
            };

            client.Send(new Datagram()
            {
                Header        = header,
                PayloadHolder = null,
            });
        }
        public Datagram TransformRequest(Request request)
        {
            var header = new RemotingHeader
            {
                MagicCode = RemotingHeader.QmqMagicCode,
                Version   = RemotingHeader.Version8,
                Code      = CommandCode.SendMessage,
                Flag      = 0,
                Opaque    = (int)request.Id // TODO(keli.wang): don't use request id here?
            };

            var payloadHolder = new MessageSendPayloadHolder((List <Message>)request.Args);

            return(new Datagram
            {
                Header = header,
                PayloadHolder = payloadHolder
            });
        }