| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Taobao.Top.Link.Channel;
- namespace Taobao.Top.Link.Endpoints
- {
- /// <summary>context for receiving message
- /// </summary>
- public class EndpointContext : EventArgs
- {
- private int _flag;
- private string _token;
- private EndpointHandler _handler;
- private ChannelContext _channelContext;
- /// <summary>get received message
- /// </summary>
- public IDictionary<string, object> Message { get; internal set; }
- /// <summary>get where the message sent from
- /// </summary>
- public Identity MessageFrom { get; internal set; }
- public EndpointContext(ChannelContext channelContext
- , EndpointHandler handler
- , Identity messageFrom
- , int flag
- , string token)
- {
- this._channelContext = channelContext;
- this._handler = handler;
- this.MessageFrom = messageFrom;
- this._flag = flag;
- this._token = token;
- }
- /// <summary>reply message
- /// </summary>
- /// <param name="message"></param>
- public void Reply(IDictionary<string, object> message)
- {
- this._handler.Send(this.CreateMessage(message), this._channelContext.Sender);
- }
- /// <summary>tell error occur
- /// </summary>
- /// <param name="statusCode"></param>
- /// <param name="statusPhase"></param>
- public void Error(int statusCode, string statusPhase)
- {
- Message msg = this.CreateMessage(null);
- msg.StatusCode = statusCode;
- msg.StatusPhase = statusPhase;
- this._handler.Send(msg, this._channelContext.Sender);
- }
- private Message CreateMessage(IDictionary<string, object> message)
- {
- Message msg = new Message();
- msg.MessageType = MessageType.SENDACK;
- msg.Content = message;
- msg.Flag = this._flag;
- msg.Token = this._token;
- return msg;
- }
- }
- }
|