public ChatServer(IPAddress address, int port) : base(address, port) { SessionManager = new ChatSessionManager(); ChannelManager = new ChatChannelManager(); ChannelManager.Start(); SessionManager.Start(); }
private static void OnUpdateSocketServerSessionMessageReceived(UpdateSocketServerSessionMessage message) { if (ChatSessionManager.TryGet(message.SessionId, out ChatSession session)) { session.UpdateSocketServerSessionMessageReceived(message); } }
protected override void CheckRequest() { switch (_request.RequestType) { case ChatMessageType.ChannelMessage: base.CheckRequest(); break; case ChatMessageType.UserMessage: if (_request.RequestType == ChatMessageType.UserMessage) { if (!ChatSessionManager.GetSessionByNickName(_request.NickName, out _otherSession)) { _errorCode = ChatError.NoSuchNick; _sendingBuffer = ChatIRCError.BuildNoSuchNickError(); } } break; default: _errorCode = ChatError.Parse; break; } }
public override void CheckRequest() { if (ChatSessionManager.IsNickNameExisted(_nickCmd.NickName)) { _errorCode = ChatError.NickNameInUse; } base.CheckRequest(); }
protected override TcpSession CreateSession() { //add sessions to session manager ChatSession session = new ChatSession(this); ChatSessionManager.AddSession(session); return(session); }
public ChatServer(IPAddress address, int port) : base(address, port) { SessionManager = new ChatSessionManager(); CommandManager = new ChatCommandManager(); ChannelManager = new ChatChannelManager(); //use this to add command into chatserver CommandManager.Start(); ChannelManager.Start(); SessionManager.Start(); }
public override void DataOperation() { base.DataOperation(); foreach (var channel in _session.UserInfo.JoinedChannels) { channel.LeaveChannel(_session, _cmd.Reason); } ChatSessionManager.RemoveSession(_session); }
protected override void CheckRequest() { base.CheckRequest(); if (ChatSessionManager.IsNickNameExisted(_request.NickName)) { _errorCode = ChatError.NickNameExisted; return; } }
public override void CheckRequest() { base.CheckRequest(); if (ChatSessionManager.IsNickNameExisted(_cmd.NickName)) { _errorCode = ChatError.IRCError; _sendingBuffer = ChatIRCError.BuildNoSuchNickError(); } }
/// <summary> /// Send all channel user information /// </summary> private void GetUserInfo() { ChatSession session; if (!ChatSessionManager.GetSessionByUserName(_request.NickName, out session)) { _errorCode = ChatError.NoSuchNick; return; } _resultSession = session; }
protected override void OnDisconnected() { foreach (var channel in ChatChannelManager.Channels.Values) { channel.LeaveChannel(this, "Disconnected"); } ChatSessionManager.RemoveSession(this); base.OnDisconnected(); }
/// <summary> /// Initializes msgr server. /// </summary> private MsgrServer() { this.Database = new MsgrDb(); this.Conf = new MsgrConf(); this.UserManager = new UserManager(); this.ChatSessionManager = new ChatSessionManager(); this.Server = new MsgrServerServer(); this.Server.Handlers = new MsgrServerHandlers(); this.Server.Handlers.AutoLoad(); }
/// <summary> /// Send all channel user information /// </summary> private void GetUserInfo() { ChatSession session; if (ChatSessionManager.GetSessionByNickName(_cmd.Name, out session)) { BuildWhoReplyForUser(session); } else if (ChatSessionManager.GetSessionByUserName(_cmd.Name, out session)) { BuildWhoReplyForUser(session); } else //todo check whether we need this error { _errorCode = ChatError.IRCError; _sendingBuffer = ChatIRCError.BuildNoSuchNickError(); } }
public override void DataOperation() { base.DataOperation(); ChatChannelUser user; foreach (var channel in _session.UserInfo.JoinedChannels) { if (!channel.GetChannelUser(_session, out user)) { continue; } channel.RemoveBindOnUserAndChannel(user); channel.MultiCastLeave(user, _cmd.Reason); } ChatSessionManager.RemoveSession(_session); }
protected override void OnDisconnected() { foreach (var channel in ChatChannelManager.Channels.Values) { ChatChannelUser user; if (!channel.GetChannelUser(this, out user)) { continue; } channel.RemoveBindOnUserAndChannel(user); channel.MultiCastLeave(user, "Disconnected"); } ChatSessionManager.RemoveSession(this); base.OnDisconnected(); }
private static void OnForwardLogicMessageReceived(ForwardLogicMessage message) { if (ChatSessionManager.TryGet(message.SessionId, out ChatSession session)) { PiranhaMessage logicMessage = LogicMagicMessageFactory.Instance.CreateMessageByType(message.MessageType); if (logicMessage == null) { throw new Exception("logicMessage should not be NULL!"); } logicMessage.GetByteStream().SetByteArray(message.MessageBytes, message.MessageLength); logicMessage.SetMessageVersion(message.MessageVersion); logicMessage.Decode(); if (!logicMessage.IsServerToClientMessage()) { session.LogicMessageManager.ReceiveMessage(logicMessage); } } }
public override void OnReceiveSessionMessage(ServerSessionMessage message) { switch (message.GetMessageType()) { case ServerMessageType.START_SERVER_SESSION: ChatSessionManager.OnStartServerSessionMessageReceived((StartServerSessionMessage)message); break; case ServerMessageType.STOP_SERVER_SESSION: ChatSessionManager.OnStopServerSessionMessageReceived((StopServerSessionMessage)message); break; case ServerMessageType.UPDATE_SOCKET_SERVER_SESSION: ChatMessageManager.OnUpdateSocketServerSessionMessageReceived((UpdateSocketServerSessionMessage)message); break; case ServerMessageType.FORWARD_LOGIC_MESSAGE: ChatMessageManager.OnForwardLogicMessageReceived((ForwardLogicMessage)message); break; } }
public static void Init() { ChatSessionManager.Init(); ChatInstanceManager.Init(); WordCensorUtil.Init(); }