Example #1
0
        /// <summary>
        ///     Publish beacon immediately and continue to publish when interval elapsed
        /// </summary>
        /// <param name="transmit">Beacon to transmit</param>
        /// <param name="interval">Interval to transmit beacon</param>
        public void Publish([NotNull] byte[] transmit, TimeSpan interval)
        {
            NetMQMessage message = new NetMQMessage();

            message.Append(NetMQBeacon.PublishCommand);
            message.Append(transmit);
            message.Append((int)interval.TotalMilliseconds);

            this.m_actor.SendMultipartMessage(message);
        }
Example #2
0
        /// <summary>
        ///     Configure beacon for the specified port and, optionally, to a specific interface.
        /// </summary>
        /// <remarks>Blocks until the bind operation completes.</remarks>
        /// <param name="port">The UDP port to bind to.</param>
        /// <param name="interfaceName">
        ///     IP address of the interface to bind to. Pass empty string (the default value) to use the
        ///     default interface.
        /// </param>
        public void Configure(int port, [NotNull] string interfaceName = "")
        {
            NetMQMessage message = new NetMQMessage();

            message.Append(NetMQBeacon.ConfigureCommand);
            message.Append(interfaceName);
            message.Append(port);

            this.m_actor.SendMultipartMessage(message);

            this.BoundTo    = this.m_actor.ReceiveFrameString();
            this.m_hostName = null;
        }
Example #3
0
        public static NetMQMessage ReceiveMultipartMessage([NotNull] this IReceivingSocket socket, int expectedFrameCount = 4)
        {
            Msg msg = new Msg();

            msg.InitEmpty();

            NetMQMessage message = new NetMQMessage(expectedFrameCount);

            do
            {
                socket.Receive(ref msg);
                message.Append(msg.CloneData());
            } while (msg.HasMore);

            msg.Close();
            return(message);
        }