private bool HasReceived(PlaylistResponseMessage responseMessage) { bool result; var token = responseMessage.GetResponseToken(); if (_responseTokens.Contains(token)) { result = true; } else { _responseTokens.Enqueue(token); result = false; } if (_responseTokens.Count > 100) { while (_responseTokens.Count > 50) { _responseTokens.Dequeue(); } } return(result); }
private void OnResponseReceived(PlaylistResponseMessage responseMessage) { if (this.PlaylistResponseReceived != null) { this.PlaylistResponseReceived(this, new PlaylistResponseEventArgs(responseMessage)); } }
public void SendPlaylistResponse(Guid sender, Guid requestId, IPlayItem[] playItems, PlaylistRequestCategory requestCategory) { var responseId = Guid.NewGuid(); var message = new PlaylistResponseMessage() { Category = requestCategory, PlayItems = playItems, ResponseId = responseId, Responser = this.ServiceId, RequestId = requestId, Sender = sender }; Send(message); }
private void _messageParser_DataReceived(object sender, NetDataReceivedEventArgs e) { PlaylistRequestMessage requestMessage = null; try { requestMessage = Deserialize <PlaylistRequestMessage>(e.Data); } catch { requestMessage = null; } if (requestMessage != null) { PlaylistResponseMessage responseMessage = requestMessage as PlaylistResponseMessage; if (responseMessage != null) { if (responseMessage.ResponseId != this.ServiceId && responseMessage.RequestId == this.ServiceId) { if (!HasReceived(responseMessage)) { OnResponseReceived(responseMessage); } } } else { if (requestMessage.Sender != this.ServiceId) { if (!HasReceived(requestMessage)) { OnRequestReceived(requestMessage); } } } } }