public override EventPackageInfo ResolvePackage(IBufferStream bufferStream) { //log4j.Debug("bufferStream.Length: " + bufferStream.Length); //log4j.Debug("headerSize: " + this.HeaderSize); //log4j.Debug("bodySize: " + ((int)bufferStream.Length - this.HeaderSize)); //int key1 = bufferStream.Skip(4).ReadByte(); //int key2 = bufferStream.ReadByte(); //int key = key2 << 8 | key1; //int subKey1 = bufferStream.ReadByte(); //int subKey2 = bufferStream.ReadByte(); //int subKey = subKey2 << 8 | subKey1; EventPackageInfo ev = new EventPackageInfo(0, 0, ""); try { int key = bufferStream.Skip(4).ReadUInt16(true); // why read little indian?? int subKey = bufferStream.ReadUInt16(true); //log4j.Debug(string.Format("key: {0}, subKey: {1}", key, subKey)); string body = bufferStream.ReadString((int)bufferStream.Length - this.HeaderSize, Encoding.UTF8); ev = new EventPackageInfo(key, subKey, body); } catch (Exception ex) { log4j.Error("ResolvePackage: ", ex); } return(ev); }
private void EventServer_NewRequestReceived(EventSession session, EventPackageInfo requestInfo) { log4j.Info($"sID: {session.SessionID}, k: {requestInfo.MainKey}, sk: {requestInfo.SubKey}, b: {requestInfo.Body}"); if (requestInfo.MainKey == 1 && requestInfo.SubKey == 2) { Task.Run(() => { TestSendAlot(session); }); } }
protected override EventPackageInfo ResolveRequestInfo(ArraySegment <byte> header, byte[] bodyBuffer, int offset, int length) { EventPackageInfo ev = new EventPackageInfo(0, 0, ""); try { //byte[] headers = header.ToArray(); int key = BitConverter.ToUInt16(header.Array, header.Offset + 4); int subKey = BitConverter.ToUInt16(header.Array, header.Offset + 6); string body = Encoding.UTF8.GetString(bodyBuffer, offset, length); ev = new EventPackageInfo(key, subKey, body); } catch (Exception ex) { log4j.Error("ResolvePackage: ", ex); } return(ev); }
protected override void HandleUnknownRequest(EventPackageInfo requestInfo) { log4j.Info($"unknow request k: {requestInfo.MainKey}, sk: {requestInfo.SubKey}, b: {requestInfo.Body}"); }