public MessagingChannel(MessageTargetMap messageTargetMap, List <NetPeer> peers) { _messageTargetMap = messageTargetMap; _bufferStream = new MemoryStream(); _immediateStream = new MemoryStream(); _peers = peers; }
public ClientSystem(World world, MessageTargetMap messageTargetMap, MessagingChannel messagingChannel) { _world = world; MessageListeners = new Dictionary <Type, IMessageReceiver>(); _messageTargetMap = messageTargetMap; _messagingChannel = messagingChannel; var serverMessagingTargetEntity = _world.CreateEntity(); serverMessagingTargetEntity.Set(new ServerMessagingTarget() { Channel = _messagingChannel }); EventBasedNetListener listener = new EventBasedNetListener(); _client = new NetManager(listener); _client.SimulatePacketLoss = true; _client.SimulationPacketLossChance = 5; _client.DisconnectTimeout = 60000; _client.Start(); _client.Connect("localhost" /* host ip or name */, 9050 /* port */, "SomeConnectionKey" /* text key or NetDataWriter */); listener.PeerConnectedEvent += (netPeer) => { _messagingChannel.PeerAdded(netPeer); }; listener.NetworkReceiveEvent += (fromPeer, dataReader, deliveryMethod) => { Utilties.Logging.Metrics.LogMetric("Client:Networking:RecievedMessages:Size", dataReader.UserDataSize, TimeSpan.FromSeconds(5)); MessageRecieved(new ArraySegment <byte>(dataReader.RawData, dataReader.UserDataOffset, dataReader.UserDataSize)); dataReader.Recycle(); }; }
public ServerSystem(World world, MessageTargetMap messageTargetMap) { _messageTargetMap = messageTargetMap; MessageListeners = new Dictionary <Type, IMessageReceiver>(); _newPeers = new List <NetPeer>(); _world = world; _clientEntities = world.GetEntities().With <ClientMessagingTarget>().AsSet(); EventBasedNetListener listener = new EventBasedNetListener(); _server = new NetManager(listener); _server.SimulatePacketLoss = true; _server.SimulationPacketLossChance = 5; _server.DisconnectTimeout = 60000; _server.Start(9050 /* port */); listener.ConnectionRequestEvent += request => { request.AcceptIfKey("SomeConnectionKey"); }; listener.PeerConnectedEvent += peer => { _newPeers.Add(peer); }; listener.NetworkReceiveEvent += (fromPeer, dataReader, deliveryMethod) => { MessageRecieved(new ArraySegment <byte>(dataReader.RawData, dataReader.UserDataOffset, dataReader.UserDataSize)); dataReader.Recycle(); }; }
public MessagingChannel(MessageTargetMap messageTargetMap, NetPeer peer) : this(messageTargetMap, new List <NetPeer>() { peer }) { }
public MessagingChannel(MessageTargetMap messageTargetMap) : this(messageTargetMap, new List <NetPeer>()) { }