/// <summary> /// Handles the channel streaming start. /// </summary> /// <param name="header">The header.</param> /// <param name="channelStreamingStart">The channel streaming start.</param> protected override void HandleChannelStreamingStart(IMessageHeader header, ChannelStreamingStart channelStreamingStart) { // no action needed if streaming already started //if (_tokenSource != null) // return; base.HandleChannelStreamingStart(header, channelStreamingStart); Request = null; if (_tokenSource == null) { _tokenSource = new CancellationTokenSource(); } var token = _tokenSource.Token; Logger.Debug("Channel Streaming starting."); Task.Run(() => StartChannelStreaming(header.MessageId, channelStreamingStart.Channels, token), token); }
public async Task SendStreamRequest(List <ChannelStreamingInfo> lstChannels) { if (lstChannels.Count == 0) { return; } MessageHeader header = new MessageHeader(); header.Protocol = (int)Protocols.ChannelStreaming; header.MessageType = 4; header.MessageId = EtpHelper.NextMessageId; header.MessageFlags = 0; header.CorrelationId = 0; var channelStreamingStart = new ChannelStreamingStart(); channelStreamingStart.Channels = lstChannels; var data = Encode(channelStreamingStart, header); var buffer = new ArraySegment <byte>(data, 0, data.Length); await m_Socket.SendAsync(buffer, WebSocketMessageType.Binary, true, CancellationToken.None).ConfigureAwait(false); }
protected override void HandleChannelStreamingStart(MessageHeader header, ChannelStreamingStart channelStreamingStart) { base.HandleChannelStreamingStart(header, channelStreamingStart); StartSendingChannelData(header); }