Example #1
0
        async ValueTask <bool> HandleServerMessage(SocketServer <object, SimpleMessage> .Connection connection, SimpleMessage message)
        {
            int messageId = Interlocked.Increment(ref messagesReceived);

            if (messageId == 1)
            {
                stopwatch.Start();
            }
            if (messageId % 50000 == 0)
            {
                // Logger.Info($"Messages received: {messagesReceived}. Messages/s: {messagesReceived / stopwatch.Elapsed.TotalSeconds}");
            }

            // if messages are being handled synchronously in the event message stream this can deadlock!
            if (message.Disconnect)
            {
                await connection.DisconnectAsync().ConfigureAwait(false);
            }

            if (DebugReceived)
            {
                //Logger.Info($"Received message id {message.Id}");
            }

            if (!message.DontReply)
            {
                await connection.WriteAsync(new SimpleMessage
                {
                    Id    = message.Id,
                    Value = messageId
                }).ConfigureAwait(false);

                if (DebugReceived)
                {
                    // Logger.Info($"Replied for message id {message.Id}");
                }
            }

            return(true);
        }
        async ValueTask <bool> HandleClientMessage(SimpleMessage message)
        {
            // Logger.Info($"Client message received: {message}");

            return(true);
        }