static void Main(string[] args)
{
//configure serialization
var messageSerializer = new ProtobufMessageSerializer(typeof(Message).Assembly, typeof(JoinRoom).Assembly);
var logger = new LoggerConfiguration()
.ConfigureMOUSETypesDestructure()
.MinimumLevel.Error()
.WriteTo.ColoredConsole()
.CreateLogger();
var coreEventLogger = new SerilogCoreEvents(logger);
//configure network transport provider
Action<ISimpleMessageHandlingConfigBuilder> messageHandlingConfigurator =
c => c.HandleMessage<RoomEvent>(OnRoomEvent);
//Console.WriteLine("Connect to");
Console.WriteLine("Enter how many clients to run simultaneously");
var clientCount = int.Parse(Console.ReadLine());
string roomName = Guid.NewGuid().ToString();
for (int i = 0; i < clientCount; i++)
{
var transport = new LidgrenNetProvider(
new NetPeerConfiguration("Public")
{
ConnectionTimeout = 30
},
new SerilogLidgrenEvents(logger));
var config = new NetNodeConfig { SendTimeoutSec = 30, ConnectTimeoutSec = 30 };
var node = new ClientNode(
//new[] { "127.0.0.1:20001" },
new[] { "rurounisfcluster.westeurope.cloudapp.azure.com:20001" },
transport, coreEventLogger, messageSerializer, messageHandlingConfigurator, config: config);
try
{
node.Start();
node.ExecuteChatUserFlow(roomName).Wait();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Thread.Sleep(-1);
}