/// <summary> /// Sends an object to the target peer with the requested reliability and priority levels. /// </summary> /// <typeparam name="TData">The type of object to send.</typeparam> /// <param name="peer">The target peer.</param> /// <param name="route">The target route on the scene peer.</param> /// <param name="data">The data that will be serialized then sent.</param> /// <param name="priority">The priority level.</param> /// <param name="reliability">The reliability level.</param> public static void Send <TData>(this IScenePeer peer, string route, TData data, PacketPriority priority = PacketPriority.HIGH_PRIORITY, PacketReliability reliability = PacketReliability.RELIABLE_ORDERED) { peer.Send(route, s => { peer.Serializer().Serialize(data, s); }, priority, reliability); }
private Task OnConnected(IScenePeer peer) { long id = peer.Id; _scene.Broadcast("id", id); peer.Send("ids", _clients.Keys); _clients.AddOrUpdate(id, peer, (key, oldValue) => peer); return Task.FromResult(true); }
private Task OnConnected(IScenePeer peer) { long id = peer.Id; _scene.Broadcast("id", id); peer.Send("ids", _clients.Keys); _clients.AddOrUpdate(id, peer, (key, oldValue) => peer); return(Task.FromResult(true)); }
public static ISerializer Serializer(this IScenePeer c) { return(c.GetComponent <ISerializer>()); }
private CancellationToken GetCancellationTokenForScene(IScenePeer peer) { return(_sceneCts.GetOrAdd($"{peer.SceneId}/{peer.ShardId}", _ => new CancellationTokenSource()).Token); }