123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Slice;
- using CommonNetwork_ICE.Common;
- using CommonServer.Server;
- using CommonServer_ICE.Session;
- using CommonServer.Protocol;
- using CommonLang.Protocol;
- using CommonNetwork_ICE.Util;
- using CommonServer_ICE.Server;
- using CommonLang.Log;
- namespace CommonServer_ICE.Msg
- {
-
-
-
- internal abstract class ServerMsgHandler
- {
- private static Logger log = LoggerFactory.GetLogger("ServerMsgHandler");
- public ServerMsgHandler()
- {
- }
-
-
-
- public abstract IceConnectServer getServer();
-
-
-
-
-
-
-
- public abstract void RecvData(int recvPort, TransMessage message, string ip, int port);
-
-
-
-
-
-
-
- public abstract void SendDataRecvAck(int recvPort, long serial, string ip, int port);
-
-
-
-
-
-
- public void Connect(int recvPort, string ip, int port)
- {
- log.Info("收到客户端发来请求连接,地址IP【" + ip + "】,端口【" + port + "】,发送方侦听端口【" + recvPort + "】");
- if (SessionManager.hasSession(ip, port, recvPort))
- {
-
- IceServerIoSession confirmSession = (IceServerIoSession)SessionManager.getSession(ip, port, recvPort);
- if (!confirmSession.IsConnected)
- {
- confirmSession.IsConnected = true;
- try
- {
- confirmSession.Sender.ConnectAck();
- }
- catch (Exception e)
- {
- confirmSession.HandleException(e);
- }
- }
- else
- {
- log.Error("非法的多次连接,不予处理,客户端地址IP【" + ip + "】,端口【" + port + "】,发送方侦听端口【" + recvPort + "】");
- }
- return;
- }
- IceConnectServer server = this.getServer();
- IceServerIoSession session = SessionManager.createSession(server, ip, port, recvPort);
-
- IceConnector connector = new IceConnector(Constants.SEND_INTERFACE_NAME, Constants.SERVER_SENDER_RECV_ADAPTER, ip, recvPort, server.getServerConfig().Ip, server.getServerConfig().Port);
- try
- {
- IceInit.InitIceSender(server.getCommType(), connector);
- }
- catch (Exception e)
- {
- session.HandleException(e);
- return;
- }
- if (connector.SenderConnector == null)
- {
- log.Error("初始化服务器端发送器异常,创建Session不成功,客户端地址IP【" + ip + "】,端口【" + port + "】,发送方侦听端口【" + recvPort + "】");
- return;
- }
- session.Connector = connector;
- session.Sender = connector.Sender;
-
- session.IsConnected = true;
-
- try
- {
- server.OnNewSessionConnected(session);
- session.OnSessionStarted();
- session.Sender.ConnectAck();
- }
- catch (Exception e)
- {
- session.HandleException(e);
- }
- }
-
-
-
-
-
- public void ConnectAck(string ip, int port)
- {
- }
-
-
-
-
-
-
- public void Close(int recvPort, string ip, int port)
- {
- log.Info("收到客户端发来关闭连接请求,地址IP【" + ip + "】,端口【" + port + "】,发送方侦听端口【" + recvPort + "】");
- IceServerIoSession session = (IceServerIoSession)SessionManager.getSession(ip, port, recvPort);
- if (session != null)
- {
- try
- {
- session.Sender.CloseAck(recvPort);
- }
- catch (Exception e)
- {
- session.HandleException(e);
- }
-
- session.Disconnect(true);
- }
- else
- {
- log.Error("非法的关闭命令,客户端地址IP【" + ip + "】,端口【" + port + "】,发送方侦听端口【" + recvPort + "】");
- return;
- }
- }
-
-
-
-
-
-
- public void CloseAck(int recvPort, string ip, int port)
- {
- log.Info("收到客户端发来关闭成功响应,地址IP【" + ip + "】,端口【" + port + "】,发送方侦听端口【" + recvPort + "】");
- IceServerIoSession session;
- if (SessionManager.hasSession(ip, port, recvPort))
- {
- session = (IceServerIoSession)SessionManager.getSession(ip, port, recvPort);
- session.Disconnect(true);
- }
- else
- {
- log.Error("非法的关闭响应命令,客户端地址IP【" + ip + "】,端口【" + port + "】,发送方侦听端口【" + recvPort + "】");
- return;
- }
- }
- }
- }
|