Пример #1
0
        public void Send()
        {
            _ref = _channel.Socket.MakeRef();
            _refEvent = _channel.ReplyEventName(_ref);
            _receivedResp = null;
            _sent = false;

            _channel.On(_refEvent, (payload, reference) =>
            {
                _receivedResp = payload;
                MatchReceive(payload);
                CancelRefEvent();
                CancelAfter();
            });

            StartAfter();
            _sent = true;

            var env = new Envelope()
            {
                Topic = _channel.Topic,
                Event = _event,
                Payload = _payload,
                Ref = _ref,
            };

            _channel.Socket.Push(env);
        }
Пример #2
0
        private void SendHeartbeat()
        {
            var env = new Envelope()
            {
                Topic = "phoenix",
                Event = "heartbeat",
                Payload = new JObject(),
                Ref = MakeRef(),
            };

            Push(env);
        }
Пример #3
0
        public void Push(Envelope envelope)
        {
            Action callback = () => _conn.Send(JObject.FromObject(envelope).ToString(Formatting.None));

            if (IsConnected())
            {
                callback();
            }
            else
            {
                _sendBuffer.Add(callback);
            }
        }