private async Task HandlePlainText(HttpContext context, ulong auth_key, BinaryReader reader)
        {
            var message_id   = reader.ReadUInt64();
            var message_size = reader.ReadInt32();
            var envelop      = MessageContext.Create(reader.ReadMTObject());

            envelop.AuthKey(auth_key);
            envelop.MessageId(message_id);
            envelop.MessageSize(message_size);
            this.logger.LogDebug(
                "PlainText request received: {0}", envelop.Body);

            var response = await MTServer.Instance.Services.Bus().Send(envelop);

            var writer = new BinaryWriter(context.Response.Body);

            writer.Write(auth_key);
            writer.Write(message_id);
            writer.Write(message_size);
            if (response != null)
            {
                MTObjectSerializer.Serialize(response as MTObject, writer);
                this.logger.LogDebug(
                    $"PlainText request successfully handled. Response: '{response}'");
            }
            else
            {
                this.logger.LogWarning(
                    $"No response for: '{envelop.Body}'");
                //context.Response.StatusCode = 404;
            }
            writer.Close();
        }
Beispiel #2
0
 public void Write(MTObject @object)
 {
     MTObjectSerializer.Serialize(@object, this);
 }