AgNetSession CreateNewSession(EndPoint endPoint) { lock (this.sessions) { AgNetSession session = new AgNetSession(this, endPoint); this.sessions.Add(endPoint, session); return(session); } }
public void SendMessage(AgNetSession session, OutgoingMessage msg, DeliveryType deliveryType, byte channel) { if (session.State != SessionState.Connected) { throw new InvalidOperationException(string.Format("Session {0} was disconnected", session)); } session.CommitAndEnqueueForSending(msg, deliveryType, channel); }
internal override void OnSessionStateChangedInternal(AgNetSession session) { base.OnSessionStateChangedInternal(session); if (session.State == SessionState.Closed) { Dispose(); } }
internal virtual void OnSessionStateChangedInternal(AgNetSession session) { System.Diagnostics.Debug.WriteLine(string.Format("{0} state changed to {1}", session, session.State)); if (OnSessionStateChangedEvent != null) { if (Context == null) { OnSessionStateChangedEvent(session); } else { Context.Post(o => OnSessionStateChangedEvent(session), null); } } }
internal override void OnMessageInternal(IncomingMessage msg) { AgNetSession session = GetSession(msg.RemoteEndPoint); IEnumerable <IncomingMessage> messages = session.ReceiveMessage(msg); if (OnMessageEvent != null) { foreach (var message in messages) { if (Context == null) { OnMessageEvent(session, message); } else { Context.Post(o => OnMessageEvent(session, message), null); } } } }
public void SendMessage(AgNetSession session, OutgoingMessage msg, DeliveryType deliveryType) { SendMessage(session, msg, deliveryType, 0); }