Exemple #1
0
        /// <summary>
        /// WebSocket OnOpen event handler; Send listen topics and fire Connected event.
        /// </summary>
        private void _wsclient_OnOpen(object sender, EventArgs e)
        {
            // Start pinger
            _pinger.Start();

            // Reset reconnect attempts
            _reconnectionAttempt = 0;

            // Fire connected event and broadcast message
            Connected?.Invoke(this, null);

            // Create PubSub subscription payload
            var payload = new TwitchPubSubPayload
            {
                Type  = "LISTEN",
                Nonce = DateTime.UtcNow.Ticks.ToString(),
                Data  = new TwitchPubSubPayloadData
                {
                    Topics = new string[] {
                        $"channel-subscribe-events-v1.{_userId}",
                        $"channel-bits-events-v1.{_userId}",
                        $"channel-commerce-events-v1.{_userId}",
                        $"whispers.{_userId}"
                    },
                    AuthToken = _casterCredentials.OAuth
                }
            };

            // Async send json converted payload to server
            _wsclient.SendAsync(JsonConvert.SerializeObject(payload), null);
        }
Exemple #2
0
        /// <summary>
        /// Pinger. Sends a PING type message to PubSub on every elapsed event.
        /// </summary>
        private void _pinger_Elapsed(object sender, ElapsedEventArgs e)
        {
            // Send PING when connection is alive
            if (_wsclient.IsAlive)
            {
                // Create PING payload
                var payload = new TwitchPubSubPayload
                {
                    Type = "PING"
                };

                // Async send json converted payload to server
                _wsclient.Send(JsonConvert.SerializeObject(payload));

                // Start pong timer
                _pongtimer.Start();
            }
        }