public static NetMessage PostMsg(this WebsocketBase socket, Allpet.DB.SDK.NetMessage msg) { NetMessage __msg = null; socket.SendWithOnceCallback(msg, async(msgback) => { __msg = msgback; }); while (socket.Connected && __msg == null) { System.Threading.Thread.Sleep(1); } return(__msg); }
public UInt64 Send(Allpet.DB.SDK.NetMessage msg) { UInt64 _id = 0; lock (this) { _id = this.sendMsgID; this.sendMsgID++; } msg.Params["_id"] = BitConverter.GetBytes(_id); wantsend.Enqueue(msg.ToBytes()); return(_id); }
public void SendWithOnceCallback(Allpet.DB.SDK.NetMessage msg, OnClientRecv callback) { var _id = Send(msg); this.mapRecv[_id] = callback; }