public override void ProcessPayload(Interfaces.IClient Client, Plugin.IPlugin plugin = null) { lock (Client.Connection.InitializedClasses) { if (Client.Connection.InitializedClasses.ContainsKey(SharedClassId)) { SharedClass initClass = Client.Connection.InitializedClasses[SharedClassId]; Client.Connection.InitializedClasses[SharedClassId].IsDisposed = true; SharedClass localSharedClass = null; lock (Client.Connection.SharedClasses) { if (Client.Connection.SharedClasses.TryGetValue(initClass.SharedName, out localSharedClass)) { localSharedClass.SharedInitializeCounter--; } } Client.Connection.InitializedClasses[SharedClassId] = null; Client.Connection.InitializedClasses.Remove(SharedClassId); } else { //strange client behavior Client.Disconnect(); } } }
private void Disconnect() { if (client == null) { return; } foreach (Action <object[]> act in reads) { client.Read -= act; } client.RemoveItself(); client = null; }
public override void ProcessPayload(Interfaces.IClient client, Plugin.IPlugin plugin = null) { SSPClient Client = client as SSPClient; if (Client.PeerSide == PeerSide.Client) { if (Client.SyncNextRandomId != null) { Client.SyncNextRandomId.Value = this; Client.SyncNextRandomId.Pulse(); } } else if (Client.PeerSide == PeerSide.Server) { RandomId = Client.Server.Random.NextDecimal(); client.Connection.SendMessage(this, PacketId.RequestMessages); } base.ProcessPayload(client, plugin); }
void CreateClient() { try { if (client != null) { if (client.Url.Equals(url) & client.Type.Equals(type)) { return; } } Disconnect(); if (type.Equals(RemoteType.Ipc)) { client = new IPCClient.Subscriber(url); } else if (type.Equals(RemoteType.Tcp)) { client = new TCPClient.Subscriber(url); } else { client = new HttpClient.Subscriber(url); } foreach (Action <object[]> read in reads) { client.Read += read; } str = client.Register(); if (str != null) { types = str.StringToTypes(); } } catch (Exception exception) { isEnanled = false; exception.ShowError(); Disconnect(); client = null; } }
public override void ProcessPayload(Interfaces.IClient client, Plugin.IPlugin plugin = null) { }