private void TcpSock_OnClientConnect(BaseServerSocket sender, Socket s) { var client = new InternalSyncIOConnectedClient(s, _packager); client.SetID(_guidGenerator()); client.BeginReceve(ReceveHandler); client.Send(cl => { Clients.Add(cl); client.OnDisconnect += (c, err) => Clients.Remove(c); OnClientConnect?.Invoke(this, cl);//Trigger event after handshake packet has been sent. }, new HandshakePacket(client.ID, true)); }
public SyncIOClient(TransportProtocol protocol, Packager packager) { Protocol = protocol; _packager = packager; _callbacks = new CallbackManager <SyncIOClient>(); _remoteFunctions = new RemoteFunctionManager(); _callbacks.SetHandler <HandshakePacket>((c, p) => { _handshakeComplete = p.Success; _connection.SetID(p.Id); _handshakeEvent?.Set(); _handshakeEvent?.Dispose(); _handshakeEvent = null; OnHandshake?.Invoke(this, ID, _handshakeComplete); _callbacks.RemoveHandler <HandshakePacket>(); }); _callbacks.SetHandler <RemoteCallResponse>((c, p) => _remoteFunctions.RaiseFunction(p)); }
public SyncIOClient(TransportProtocal _protocal, Packager _packager) { Protocal = _protocal; Packager = _packager; Callbacks = new CallbackManager <SyncIOClient>(); RemoteFunctions = new RemoteFunctionManager(); Callbacks.SetHandler <HandshakePacket>((c, p) => { HandshakeComplete = p.Success; Connection.SetID(p.ID); HandshakeEvent?.Set(); HandshakeEvent?.Dispose(); HandshakeEvent = null; OnHandshake?.Invoke(this, ID, HandshakeComplete); Callbacks.RemoveHandler <HandshakePacket>(); }); Callbacks.SetHandler <RemoteCallResponse>((c, p) => { RemoteFunctions.RaiseFunction(p); }); }