private static void DispatchMessage(ISockFilter filter, ISockCommand cmd) { //Clone list List <RPCConnection> clientsSafe = new List <RPCConnection>(); lock (connections) clientsSafe.AddRange(connections); //Search foreach (var c in clientsSafe) { //Filter if (!filter.CheckFilter(c)) { continue; } //Send c.EnqueueMessage(cmd); } }
private async Task OnInternalCommandReceive(ISockCommand cmd) { await cmd.HandleCommand(this); }
public void EnqueueMessage(ISockCommand cmd) { channel.Writer.WriteAsync(cmd); }