/// <summary> /// 连接断开回调 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void Disconnected(NetConnection <NetSession> sender, SocketAsyncEventArgs e) { //Performance.ServerConnect = Interlocked.Decrement(ref Performance.ServerConnect); sender.Session.Disconnected(); Log.WarningFormat("Client[{0}] Disconnected", e.RemoteEndPoint); MessageDistributer <NetConnection <NetSession> > .Instance.RaiseEvent <UserGameLeaveRequest>(sender, new UserGameLeaveRequest()); }
private void OnSocketConnected(object sender, Socket e) { IPEndPoint clientIP = (IPEndPoint)e.RemoteEndPoint; //可以在这里对IP做一级验证,比如黑名单 NetConnection <NetSession> connection = new NetConnection <NetSession>(e); Log.WarningFormat("Client[{0}]] Connected", clientIP); }
/// <summary> /// 接受数据回调 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void DataReceived(NetConnection <NetSession> sender, DataEventArgs e) { Log.WarningFormat("Client[{0}] DataReceived Len:{1}", e.RemoteEndPoint, e.Length); //由包处理器处理封包 lock (sender.packageHandler) { sender.packageHandler.ReceiveData(e.Data, 0, e.Data.Length); } //PacketsPerSec = Interlocked.Increment(ref PacketsPerSec); //RecvBytesPerSec = Interlocked.Add(ref RecvBytesPerSec, e.Data.Length); }
private void OnSocketConnected(object sender, Socket e) { IPEndPoint clientIP = (IPEndPoint)e.RemoteEndPoint; //可以在这里对IP做一级验证,比如黑名单 SocketAsyncEventArgs args = new SocketAsyncEventArgs(); NetSession session = new NetSession(); NetConnection <NetSession> connection = new NetConnection <NetSession>(e, args, new NetConnection <NetSession> .DataReceivedCallback(DataReceived), new NetConnection <NetSession> .DisconnectedCallback(Disconnected), session); Log.WarningFormat("Client[{0}]] Connected", clientIP); }
/// <summary> /// 连接断开回调 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void Disconnected(NetConnection <NetSession> sender, SocketAsyncEventArgs e) { //Performance.ServerConnect = Interlocked.Decrement(ref Performance.ServerConnect); Log.WarningFormat("Client[{0}] Disconnected", e.RemoteEndPoint); sender.Session.Disconnected(); }