public void SendCompleted(Express.IServer server, Express.ChannelSendEventArgs e) { IProtocolBuffer buffer = (IProtocolBuffer)e.Data.Tag; ProtocolBufferPool.Default.Push(buffer); SaveLogsService.WriteLog("SendCompleted : " + buffer); }
private void SendBackToReg(Message message, Express.IServer server, Express.ChannelReceiveEventArgs e, IProtocolBuffer protocolbuffer, int typeToBack = 0) { e.Channel.Tag = protocolbuffer; var result = GetTyepToBack(message, typeToBack); Express.Data data = new Express.Data(result.Array, result.Length); data.Tag = result; server.Send(data, e.Channel); }
static void Main(string[] args) { JT808.Serializes.SerializerFactory.Init(); _mServer = Express.ServerFactory.CreateTCP(); _mServer.Port = 6573; _mServer.Handler = new Program(); _mServer.Open(false, false, false, 1, 1, "JT808"); SaveLogsService.WriteLog("server start!"); Console.Read(); }
public void Receive(Express.IServer server, Express.ChannelReceiveEventArgs e) { IProtocolBuffer protocolbuffer; if (e.Channel.Tag == null) { protocolbuffer = ProtocolBufferPool.Default.Pop(); e.Channel.Tag = protocolbuffer; } else { protocolbuffer = (IProtocolBuffer)e.Channel.Tag; } int offset = 0; int count = e.Data.Count; while (count > 0) { int readcout = protocolbuffer.Import(e.Data.Array, 0, count); if (readcout > 0) { SendPosToServer.SubmitBase(protocolbuffer.ToString()); try { var message = MessageFactory.MessageFromBuffer(protocolbuffer); if (message != null && message.Body != null) { SaveLogsService.WriteLog("Start : --------------------"); SaveLogsService.WriteLog("消息ID : " + message.ID); SaveLogsService.WriteLog("终端SIM : " + message.SIM); SaveMsg(message, server, e, protocolbuffer); SaveLogsService.WriteLog("End : --------------------"); } } catch (Exception ex) { SaveLogsService.WriteLog("IProtocolBuffer : " + protocolbuffer); SaveLogsService.WriteLog("errorInfo : " + ex.Message); SaveLogsService.WriteLog("errorInfo : " + ex.StackTrace); } finally { ProtocolBufferPool.Default.Push(protocolbuffer); protocolbuffer = ProtocolBufferPool.Default.Pop(); } offset += readcout; count -= readcout; } } }
public void Receive(Express.IServer server, Express.ChannelReceiveEventArgs e) { IProtocolBuffer protocolbuffer; if (e.Channel.Tag == null) { protocolbuffer = ProtocolBufferPool.Default.Pop(); e.Channel.Tag = protocolbuffer; } else { protocolbuffer = (IProtocolBuffer)e.Channel.Tag; } int offset = 0; int count = e.Data.Count; while (count > 0) { int readcout = protocolbuffer.Import(e.Data.Array, 0, count); if (readcout > 0) { Message message = MessageFactory.MessageFromBuffer(protocolbuffer); ProtocolBufferPool.Default.Push(protocolbuffer); protocolbuffer = ProtocolBufferPool.Default.Pop(); e.Channel.Tag = protocolbuffer; IProtocolBuffer result = MessageFactory.MessateToBuffer <CenterResponse>( message.BussinessNO, message.SIM, (m, b) => { b.BussinessNO = message.BussinessNO; b.ResultID = message.ID; b.Result = ResultType.Success; }); Beetle.Express.Data data = new Express.Data(result.Array, result.Length); data.Tag = result; server.Send(data, e.Channel); offset += readcout; count -= readcout; } } }
public void Opened(Express.IServer server) { }
public void Error(Express.IServer server, Express.ErrorEventArgs e) { Console.WriteLine(e.Error.Message); }
public void Disposed(Express.IServer server, Express.ChannelEventArgs e) { }
public void Connect(Express.IServer server, Express.ChannelConnectEventArgs e) { }
private void SaveMsg(Message message, Express.IServer server, Express.ChannelReceiveEventArgs e, IProtocolBuffer protocolbuffer) { //SaveLogsService.WriteLog("Body类名 : " + message.Packet); if (message.Body is ClientRegister) { var msg = message.GetBody <ClientRegister>(); SaveLogsService.WriteLog("省ID : " + msg.Province); SaveLogsService.WriteLog("市县区ID : " + msg.City); SaveLogsService.WriteLog("Color : " + msg.Color); SaveLogsService.WriteLog("终端ID : " + msg.DeviceID); SaveLogsService.WriteLog("终端型号 : " + msg.DeviceNo); SaveLogsService.WriteLog("制造商 : " + msg.Provider); SaveLogsService.WriteLog("车辆颜色 : " + msg.Color); SendBackToReg(message, server, e, protocolbuffer); } else if (message.Body is ClientSignature) { var msg = message.GetBody <ClientSignature>(); SaveLogsService.WriteLog("Signature : " + msg.Signature); SendBackToReg(message, server, e, protocolbuffer, 1); } else if (message.Body is ClientResponse) { var msg = message.GetBody <ClientResponse>(); SaveLogsService.WriteLog("BussinessNO : " + msg.BussinessNO); SaveLogsService.WriteLog("ResultID : " + msg.ResultID); SaveLogsService.WriteLog("BussinessNO : " + msg.Result); SendBackToReg(message, server, e, protocolbuffer, 1); } else if (message.Body is ClientPostion) //坐标上报 { var postion = message.GetBody <ClientPostion>(); SaveLogsService.WriteLog("ID : " + message.ID); SaveLogsService.WriteLog("SIM : " + message.SIM); SaveLogsService.WriteLog("Latitude : " + postion.Latitude); SaveLogsService.WriteLog("Longitude : " + postion.Longitude); SaveLogsService.WriteLog("speed : " + postion.Speed); SaveLogsService.WriteLog("Time : " + postion.Time.ToString("yyyy-MM-dd HH:mm:ss")); SaveLogsService.WriteLog("Status : " + (postion.Status.ACC ? "启动" : "关闭")); var dto = new PostionDto { Sim = message.SIM, Latitude = postion.Latitude.ToString(), Longitude = postion.Longitude.ToString(), Direction = postion.Direction.ToString(), Speed = postion.Speed.ToString(), Time = postion.Time.ToString("yyyy-MM-dd HH:mm:ss"), Status = postion.Status.ACC.ToString() }; var result = SendPosToServer.SubmitPos(dto); if (result != "0") { SaveLogsService.WriteLog("Upload : " + result); } SendBackToReg(message, server, e, protocolbuffer, 1); } else { //SendBackToReg(message, server, e, protocolbuffer, 1); } }
public void Error(Express.IServer server, Express.ErrorEventArgs e) { SaveLogsService.WriteLog("Error : " + e.Error.Message); }
public void Disposed(Express.IServer server, Express.ChannelEventArgs e) { SaveLogsService.WriteLog("Disposed : " + e.Channel.ID); }
public void Connect(Express.IServer server, Express.ChannelConnectEventArgs e) { SaveLogsService.WriteLog("Connect : " + e.Channel.ID); }