using DeepCore; using DeepCore.IO; using DeepMMO.Attributes; using DeepMMO.Protocol; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DeepMMO.Server.Connect { //------------------------------------------------------------------- /// /// 连接已断开通知(只是网络断开,服务状态不变) /// [ProtocolRoute("Connect", "Session -> Logic -> Area")] public class SessionDisconnectNotify : Notify { public string sessionName; public string socketID; public string roleID; } //------------------------------------------------------------------- /// /// 用户重新连接通知(只是网络重连,服务状态不变) /// [ProtocolRoute("Session", "Logic -> Area")] public class SessionReconnectNotify : Notify { public string sessionName; public string roleID; public HashMap config; } //------------------------------------------------------------------- [ProtocolRoute("Session", "Logic -> Area")] public class SessionBeginLeaveRequest : Request { public string sessionName; public string roleID; } [ProtocolRoute("Area", "Session")] public class SessionBeginLeaveResponse : Response { } //------------------------------------------------------------------- /// ///用于广播的协议,发送给所有SessionService /// [ProtocolRoute("Connector", "* -> Connector")] public class ConnectorBroadcastNotify : Notify { public string serverGroupID { set { if (value == null) { serverGroups = null; return; } if (serverGroups == null) { serverGroups = new ArrayList(); } serverGroups.Add(value); } } public string sessionID { set { if (value == null) { sessions = null; return; } if (sessions == null) { sessions = new ArrayList(); } sessions.Add(value); } } /// /// 可接受广播的ServerGroupID。 /// 如果为空,则广播到所有ServerGroup。 /// public ArrayList serverGroups; /// /// 可接受广播的所有客户端,一般指一个频道里的人。 /// 如果为空,则广播到所有Session。 /// public ArrayList sessions; /// /// 真正广播出去的协议。 /// public Notify notify; } [ProtocolRoute("*", "Session")] public class KickPlayerNotify : Notify { public string reason; } }