123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using CommonNetwork_ICE.Common;
- using CommonLang.Protocol;
- using CommonNetwork_ICE.Util;
- using CommonNetwork_ICE.Session;
- using Slice;
- using CommonLang.Log;
- using CommonNetwork_ICE.Client;
- namespace CommonNetwork_ICE.Msg
- {
- /// <summary>
- /// ICE消息委托处理类:根据客户端消息接收类的委托,处理服务器发来的ICE网络消息
- /// </summary>
- internal abstract class ClientMsgHandler
- {
- private static Logger log = LoggerFactory.GetLogger("ClientMsgHandler");
- // 数据包编码解码器
- public IceMessageCodec Codec { get; set; }
- // ICE客户端
- protected IceClientConnector iceClient;
- // 会话对象
- protected IceClientNetSession session;
- public ClientMsgHandler(IceClientConnector iceClient, IceClientNetSession session)
- {
- this.iceClient = iceClient;
- this.session = session;
- }
- /// <summary>
- /// 收到数据包
- /// </summary>
- /// <param name="message">数据包</param>
- /// <param name="ip">发送方IP</param>
- /// <param name="port">发送方端口</param>
- public abstract void RecvData(int recvPort, TransMessage message, String ip, int port);
- /// <summary>
- /// 处理发送数据后收到服务器的关键数据包响应
- /// </summary>
- /// <param name="serial"></param>
- /// <param name="ip"></param>
- /// <param name="port"></param>
- public void SendDataRecvAck(int recvPort, long serial, string ip, int port)
- {
- log.Trace("收到服务器发来关键数据包响应,地址IP【" + ip + "】,端口【" + port + "】,编号:" + serial);
- iceClient.SetSentLastSerial(serial);
- }
- /// <summary>
- /// 处理服务器连接上客户端
- /// </summary>
- /// <param name="ip"></param>
- /// <param name="port"></param>
- public void Connect(string ip, int port)
- {
- // 目前服务器不会主动连接客户端,此方法客户端不实现
- }
- /// <summary>
- /// 处理收到服务器的连接成功响应
- /// </summary>
- /// <param name="ip"></param>
- /// <param name="port"></param>
- public void ConnectAck(string ip, int port)
- {
- iceClient.IsConnected = true;
- log.Info("收到服务器发来连接成功响应,地址IP【" + ip + "】,端口【" + port + "】");
- }
- /// <summary>
- /// 处理收到服务器的会话关闭请求,回发关闭响应
- /// </summary>
- /// <param name="ip"></param>
- /// <param name="port"></param>
- public void Close(int recvPort, string ip, int port)
- {
- iceClient.IsConnected = false;
- iceClient.Connector.Sender.CloseAck(recvPort);
- iceClient.Close();
- log.Info("收到服务器发来关闭连接请求,地址IP【" + ip + "】,端口【" + port + "】");
- }
- /// <summary>
- /// 处理收到服务器的会话关闭响应
- /// </summary>
- /// <param name="ip"></param>
- /// <param name="port"></param>
- public void CloseAck(int recvPort, string ip, int port)
- {
- iceClient.IsConnected = false;
- log.Info("收到服务器发来关闭成功响应,地址IP【" + ip + "】,端口【" + port + "】");
- }
- }
- }
|