/// <summary> /// 当接受到消息时 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnMessage(object sender, EventArgs args) { if (packer == null) { Trigger(SocketRequestEvents.ON_MESSAGE, args); return; } try { byte[][] data = packer.Decode((args as SocketResponseEventArgs).Response); if (data != null) { for (int i = 0; i < data.Length; i++) { try { if (render != null && render.Length > 0) { DecodeRenderBuffer.Byte = data[i]; for (int n = 0; n < render.Length; n++) { render[n].Decode(DecodeRenderBuffer); } data[i] = DecodeRenderBuffer.Byte; } if (protocol == null) { args = new SocketResponseEventArgs(data[i]); } else { args = new PackageResponseEventArgs(protocol.Decode(data[i])); } Trigger(SocketRequestEvents.ON_MESSAGE, args); } catch (Exception ex) { Trigger(SocketRequestEvents.ON_ERROR, new ErrorEventArgs(ex)); } } } } catch (Exception ex) { Trigger(SocketRequestEvents.ON_ERROR, new ErrorEventArgs(ex)); Disconnect(); } }
/// <summary> /// 当接受到消息时 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnMessage(object sender , EventArgs args) { if(packer == null) { Trigger(SocketRequestEvents.ON_MESSAGE, args); return; } try { byte[][] data = packer.Decode((args as SocketResponseEventArgs).Response); if (data != null) { for (int i = 0; i < data.Length; i++) { try { if (render != null && render.Length > 0) { DecodeRenderBuffer.Byte = data[i]; for (int n = 0; n < render.Length; n++) { render[n].Decode(DecodeRenderBuffer); } data[i] = DecodeRenderBuffer.Byte; } if (protocol == null) { args = new SocketResponseEventArgs(data[i]); } else { args = new PackageResponseEventArgs(protocol.Decode(data[i])); } Trigger(SocketRequestEvents.ON_MESSAGE, args); } catch (Exception ex) { Trigger(SocketRequestEvents.ON_ERROR, new ErrorEventArgs(ex)); } } } } catch(Exception ex) { Trigger(SocketRequestEvents.ON_ERROR, new ErrorEventArgs(ex)); Disconnect(); } }