private void Send(int reqId, int resId, byte[] content, Action <int, ProtoPacket> callback) { //todo check network if (resId != 0) { //previous req is override, notify error if (mIdToOnceHandler.TryGetValue(resId, out var delegateObj)) { var error = ProtoPacket.CreateError(resId, (int)ErrorCode.req_override, string.Empty); if (delegateObj != null) { delegateObj.DynamicInvoke(resId, error); } mIdToOnceHandler.Remove(resId); } if (callback != null) { AddToHandler(resId, callback, mIdToOnceHandler); } var reqRecord = new ReqRecord(); reqRecord.reqId = reqId; reqRecord.resId = resId; reqRecord.reqTime = Time.realtimeSinceStartup; mIdToRecord.Add(resId, reqRecord); } mChannel.Send(SendBuf.From(DCGameProtocol.GetIntBuf(reqId)), SendBuf.From(content)); }
public void SendAutoRes(IMessage req, Action <int, ProtoPacket> callback) { var id = DCGameProtocol.GetId(req); if (id != 0) { Send(id, id + 1, req.ToByteArray(), callback); } }
public void Send(IMessage ms) { var id = DCGameProtocol.GetId(ms); if (id != 0) { Send(id, ms.ToByteArray()); } }
public void OnSend() { var req = new PTestDemoClsReq(); var reqId = DCGameProtocol.GetId(req); var content = req.ToByteArray(); mChannel.Send(SendBuf.From(DCGameProtocol.GetIntBuf(reqId)), SendBuf.From(content)); // mChannel.Send(Encoding.UTF8.GetBytes(mSendStr)); }
public void Send(byte[] buf, int off, int len) { var lenBuf = DCGameProtocol.GetUshortBuf((ushort)len); mSendBuf.Write(lenBuf, 0, lenBuf.Length); mSendBuf.Write(buf, off, len); StartSend(); }
public static ProtoPacket FromRecvBuf(byte[] buf, int off, int len) { var packet = new ProtoPacket(); packet.len = DCGameProtocol.GetUshort(buf, off); packet.protoId = DCGameProtocol.GetInt(buf, off + 2); packet.buf = buf; packet.offset = off + 2 + 4; //len = (protoIdBytesLength + protoContentBytesLength) packet.protoLen = len - 4; return(packet); }
private void OnRoleRes(int id, ProtoPacket protoPkt) { if (DCGameProtocol.CheckError(id, protoPkt) != ErrorCode.UNIVERSAL) { var errorRes = protoPkt.GetError(); DCLog.LogEx(errorRes.No, errorRes.OpCode, errorRes.Msg); return; } var roleRes = (PRoleRes)protoPkt.ProtoObj; mRoleList.Clear(); mRoleList.AddRange(roleRes.Infos); }
public void Send(params SendBuf[] bufs) { if (bufs.Length == 0) { return; } var len = 0; foreach (var buf in bufs) { len += buf.len; } var lenBuf = DCGameProtocol.GetUshortBuf((ushort)len); mSendBuf.Write(lenBuf, 0, lenBuf.Length); foreach (var buf in bufs) { mSendBuf.Write(buf.buf, buf.off, buf.len); } StartSend(); }
private void Send(int id, byte[] content) { mChannel.Send(SendBuf.From(DCGameProtocol.GetIntBuf(id)), SendBuf.From(content)); }
public static SendBuf From(int val) { return(From(DCGameProtocol.GetIntBuf(val))); }