コード例 #1
0
        public void Send(INUncollatedMessage message, bool reliable, Action <bool> callback, Action <INError> errback)
        {
            if (!reliable && TransportType == TransportType.WebSocket)
            {
                Logger.Warn("Sending unreliable messages is not supported on WebSocket transport, using reliable instead");
                reliable = true;
            }
            var stream = new MemoryStream();

            message.Payload.WriteTo(stream);
            Logger.TraceFormatIf(Trace, "SocketWrite: {0}", message.Payload);
            if (!reliable && stream.Length > 1024)
            {
                errback(new NError("Cannot send unreliable messages larger than 1024 bytes"));
                return;
            }
            transport.SendAsync(stream.ToArray(), reliable, (bool completed) =>
            {
                if (completed)
                {
                    callback(true);
                }
                else
                {
                    errback(new NError("Message send error"));
                }
            });
        }
コード例 #2
0
 public void Send(INUncollatedMessage message, bool reliable, Action <bool> callback, Action <INError> errback)
 {
     _client.Send(message, reliable, (bool done) =>
     {
         Enqueue(() => callback(done));
     }, (INError error) =>
     {
         Enqueue(() => errback(error));
     });
 }
コード例 #3
0
 public void Send(INUncollatedMessage message, Action <bool> callback, Action <INError> errback)
 {
     Send(message, true, callback, errback);
 }