public void Connect(IPEndPoint hostEndpoint, OnConnectionEstablished onConnectionEstablished = null, OnConnectionFailure onConnectionFailure = null, OnDisconnected onDisconnected = null) { var connectionId = _transporter.Connect(hostEndpoint); _connections[connectionId] = new ConnectionRegistration { OnConnectionEstablished = onConnectionEstablished ?? EmptyOnConnectionEstablished, OnDisconnected = onDisconnected ?? EmptyOnDisconnected }; }
public void Connect(IPEndPoint hostEndpoint, OnConnectionEstablished onConnectionEstablished = null, OnConnectionFailure onConnectionFailure = null, OnDisconnected onDisconnected = null) { var connectionRegistration = new ConnectionRegistration(); connectionRegistration.Timestamp = Time.realtimeSinceStartup; connectionRegistration.ConnectionId = ConnectionId.NoConnection; connectionRegistration.PublicEndpoint = hostEndpoint; connectionRegistration.OnConnectionEstablished = onConnectionEstablished ?? EmptyOnConnectionEstablished; connectionRegistration.OnConnectionFailure = onConnectionFailure ?? EmptyOnConnectionFailure; connectionRegistration.OnDisconnected = onDisconnected ?? EmptyOnDisconnected; var punchId = _natPunchClient.Punch(hostEndpoint, OnPunchSuccess, OnPunchFailure); _punchAttempts.Add(punchId, connectionRegistration); }
public ConnectionId Connect(IPEndPoint hostEndpoint, ApprovalSecret approvalSecret, OnConnectionEstablished onConnectionEstablished = null, OnConnectionFailure onConnectionFailure = null, OnDisconnected onDisconnected = null) { var connectionId = _connectionIdPool.Take(); _transporter.Connect(connectionId, approvalSecret, hostEndpoint); _connections[connectionId] = new ConnectionRegistration { Endpoint = hostEndpoint, OnConnectionEstablished = onConnectionEstablished ?? EmptyOnConnectionEstablished, OnConnectionFailure = onConnectionFailure ?? EmptyOnConnectionFailure, OnDisconnected = onDisconnected ?? EmptyOnDisconnected, Status = ConnectionStatus.Pending, }; return(connectionId); }
private void AddConnectionAttempt(ConnectionId connectionId, ConnectionRegistration registration) { registration.ConnectionId = connectionId; _connectionAttempts.Add(connectionId, registration); _connectionAttemptRegistrations.Add(registration); }
private void CancelPunchAttempt(NatPunchId punchId, ConnectionRegistration registration) { _punchAttempts.Remove(punchId); _cancelledAttempts[registration.ConnectionId.Value] = ConnectionId.NoConnection; _connectionIdPool.Put(registration.ConnectionId); }
private bool IsCancelled(ConnectionRegistration registration) { return(_cancelledAttempts[registration.ConnectionId.Value] == registration.ConnectionId); }