Phoenix.Socket.Push C# (CSharp) Méthode

Push() private méthode

private Push ( Newtonsoft.Json.Linq.JObject data ) : void
data Newtonsoft.Json.Linq.JObject
Résultat void
    internal void Push(JObject data)
    {
      var dataString = data.ToString(Formatting.None);
      Action callback = () =>
      {
        Log("SENDING", dataString);
        _conn.Send(dataString); //jfis - defer sending in case not currently connected
      };
      
      var topic = (string) data["topic"];
      var event_ = (string) data["event"];
      var payload = (JObject) data["payload"];
      var ref_ = (string) data["ref"];
      Log("push", $"{topic} {event_} ({ref_})", payload);

      if (ref_ == null)
      {
        throw new Exception("no ref!");
      }
      if (IsConnected()) //jfis - feels too chaotic, maybe should always go in queue and something else handles queue processing
      {
        callback();
      }
      else
      {
        _sendBuffer.Add(callback);
      }
    }

Usage Example

Exemple #1
0
        private Push Push(Push push, TimeSpan?timeout)
        {
            activePushes[push.message.@ref] = push;

            push.timerId = socket.opts.delayedExecutor.Execute(
                () => {
                push.TriggerTimeout();
                CleanUp(push.message.@ref);
            }, timeout ?? socket.opts.timeout);

            if (!socket.Push(push.message))
            {
                sendBuffer.Add(push.message);
            }

            return(push);
        }