예제 #1
0
        internal async Task EmitCallbackAsync(int packetId, params object[] data)
        {
            string dataString = GetDataString(data);

            var builder = new StringBuilder();

            if (OutGoingBytes.Count > 0)
            {
                builder.Append("46").Append(OutGoingBytes.Count).Append("-");
            }
            else
            {
                builder.Append("43");
            }
            builder
            .Append(Namespace)
            .Append(packetId)
            .Append("[")
            .Append(dataString)
            .Append("]");
            string message = builder.ToString();
            await Socket.SendMessageAsync(message);

            if (OutGoingBytes.Count > 0)
            {
                foreach (var item in OutGoingBytes)
                {
                    await Socket.SendMessageAsync(item);
                }
                OutGoingBytes.Clear();
            }
        }
예제 #2
0
        private async Task EmityAsync(string eventName, string data)
        {
            if (string.IsNullOrWhiteSpace(eventName))
            {
                throw new ArgumentException("Event name is invalid");
            }
            var builder = new StringBuilder();

            if (OutGoingBytes.Count > 0)
            {
                builder.Append("45").Append(OutGoingBytes.Count).Append("-");
            }
            else
            {
                builder.Append("42");
            }
            builder
            .Append(Namespace)
            .Append(PacketId)
            .Append("[\"")
            .Append(eventName)
            .Append("\"");
            if (!string.IsNullOrEmpty(data))
            {
                builder.Append(',').Append(data);
            }
            builder.Append(']');
            string message = builder.ToString();
            await Socket.SendMessageAsync(message);

            if (OutGoingBytes.Count > 0)
            {
                foreach (var item in OutGoingBytes)
                {
                    await Socket.SendMessageAsync(item);
                }
                OutGoingBytes.Clear();
            }
        }