public SocketIOAck CreateAck(Action <JToken[]> Callback = null) { if (Callback != null) { SocketIOAck Result = null; SimpleMutex.Lock(AckMutex, () => { for (int i = 0; true; i++) { if (i < AckList.Count) { if (AckList[i] == null) { Result = AckList[i] = new SocketIOAck(i, Callback); } } else { SocketIOAck Ack = new SocketIOAck(AckList.Count, Callback); AckList.Add(Ack); Result = Ack; } } }); return(Result); } else { return(null); } }
public static SocketIOPacket CreateEventPacket(JArray JsonArray, SocketIOAck Ack, bool JsonOnly) { SocketIOPacket Packet = CreateMessagePacket(JsonArray, Ack, JsonOnly); if (Packet.IsJson) { Packet.SocketPacketType = SocketIOPacketType.EVENT; } else { Packet.SocketPacketType = SocketIOPacketType.BINARY_EVENT; } Packet.IsJson = true; return(Packet); }
private static SocketIOPacket CreateMessagePacket(JArray JsonArray, SocketIOAck Ack, bool JsonOnly) { return(CreateMessagePacket(JsonArray, Ack == null ? -1 : Ack.PacketID, JsonOnly)); }