static void Main(string[] args) { NetMQRuntime mqRuntime = new NetMQRuntime(); mqRuntime.Run(Run(args)); }
public MessageSender() { _runtime = new NetMQRuntime(); _dealerSocket = new(">tcp://127.0.0.1:5556"); _dealerSocket.Options.Identity = Guid.NewGuid().ToByteArray(); }
public void Run() { NetMQConfig.MaxSockets = 1024; using NetMQRuntime runtime = new NetMQRuntime(); runtime.Run(Task.Run(ServerAsync)); }
public NetMQTransport( PrivateKey privateKey, AppProtocolVersion appProtocolVersion, IImmutableSet <PublicKey> trustedAppProtocolVersionSigners, int workers, string host, int?listenPort, IEnumerable <IceServer> iceServers, DifferentAppProtocolVersionEncountered differentAppProtocolVersionEncountered, TimeSpan?messageTimestampBuffer = null) { _logger = Log .ForContext <NetMQTransport>() .ForContext("Source", nameof(NetMQTransport)); if (host is null && (iceServers is null || !iceServers.Any())) { throw new ArgumentException( $"Swarm requires either {nameof(host)} or {nameof(iceServers)}."); } Running = false; _socketCount = 0; _privateKey = privateKey; _host = host; _iceServers = iceServers?.ToList(); _listenPort = listenPort ?? 0; _messageCodec = new NetMQMessageCodec( appProtocolVersion, trustedAppProtocolVersionSigners, differentAppProtocolVersionEncountered, messageTimestampBuffer); _requests = Channel.CreateUnbounded <MessageRequest>(); _runtimeProcessorCancellationTokenSource = new CancellationTokenSource(); _runtimeCancellationTokenSource = new CancellationTokenSource(); _turnCancellationTokenSource = new CancellationTokenSource(); _requestCount = 0; _runtimeProcessor = Task.Factory.StartNew( () => { // Ignore NetMQ related exceptions during NetMQRuntime.Dispose() to stabilize // tests try { using var runtime = new NetMQRuntime(); Task[] workerTasks = Enumerable .Range(0, workers) .Select(_ => ProcessRuntime(_runtimeProcessorCancellationTokenSource.Token)) .ToArray(); runtime.Run(workerTasks); } catch (Exception e) when(e is NetMQException nme || e is ObjectDisposedException ode) { _logger.Error( e, "An exception has occurred while running {TaskName}.", nameof(_runtimeProcessor)); } }, CancellationToken.None, TaskCreationOptions.DenyChildAttach | TaskCreationOptions.LongRunning, TaskScheduler.Default ); ProcessMessageHandler = new AsyncDelegate <Message>(); _replyCompletionSources = new ConcurrentDictionary <string, TaskCompletionSource <object> >(); }