mirror of
https://github.com/PepperDash/PepperDashCore.git
synced 2026-02-10 18:24:42 +00:00
Minor updates to SseClient class
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
using Crestron.SimplSharp.CrestronIO;
|
||||
using Crestron.SimplSharp.Net;
|
||||
using Crestron.SimplSharp.Net.Http;
|
||||
|
||||
namespace PepperDash.Core
|
||||
@@ -35,6 +36,8 @@ namespace PepperDash.Core
|
||||
|
||||
HttpClient Client;
|
||||
HttpClientRequest Request;
|
||||
Connection SseConnection;
|
||||
|
||||
|
||||
public GenericHttpSseClient(string key, string name)
|
||||
{
|
||||
@@ -75,23 +78,38 @@ namespace PepperDash.Core
|
||||
// In order to get a handle on the response stream, we have to get
|
||||
// the request stream first. Boo
|
||||
Client.BeginGetRequestStream(GetRequestStreamCallback, Request, null);
|
||||
CrestronConsole.PrintLine("Request made!");
|
||||
//CrestronConsole.PrintLine("Request made!");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ErrorLog.Notice("Exception occured in AsyncWebPostHttps(): " + e.ToString());
|
||||
ErrorLog.Notice("Exception occured in InitiateConnection(): " + e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void CloseConnection(string s)
|
||||
{
|
||||
if (Client != null)
|
||||
try
|
||||
{
|
||||
Client.Abort();
|
||||
IsConnected = false;
|
||||
if (Client != null)
|
||||
{
|
||||
if (SseConnection != null)
|
||||
{
|
||||
// Gracefully dispose of any in use resources??
|
||||
|
||||
Debug.Console(1, this, "Client Disconnected");
|
||||
SseConnection.Disconnect();
|
||||
SseConnection.Close(true);
|
||||
|
||||
Client.Abort();
|
||||
}
|
||||
IsConnected = false;
|
||||
|
||||
Debug.Console(1, this, "Client Disconnected");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.Console(1, this, "Error Closing SSE Connection: {0}", e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,14 +148,10 @@ namespace PepperDash.Core
|
||||
// This closes up the GetResponseStream async
|
||||
var response = request.ThisClient.EndGetResponseStream(request);
|
||||
|
||||
response.DataConnection.OnBytesReceived += new EventHandler(DataConnection_OnBytesReceived);
|
||||
|
||||
IsConnected = true;
|
||||
SseConnection = response.DataConnection;
|
||||
|
||||
Debug.Console(1, this, "Client Disconnected");
|
||||
|
||||
#warning Need to explore using a heartbeat to verify connection to the server
|
||||
|
||||
Stream streamResponse = response.ContentStream;
|
||||
// Object containing various states to be passed back to async callback below
|
||||
RequestState asyncState = new RequestState();
|
||||
@@ -163,11 +177,6 @@ namespace PepperDash.Core
|
||||
}
|
||||
}
|
||||
|
||||
void DataConnection_OnBytesReceived(object sender, EventArgs e)
|
||||
{
|
||||
Debug.Console(1, this, "DataConnection OnBytesReceived Fired");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -205,13 +214,20 @@ namespace PepperDash.Core
|
||||
return;
|
||||
}
|
||||
|
||||
Crestron.SimplSharp.CrestronIO.IAsyncResult asynchronousResult;
|
||||
do
|
||||
try
|
||||
{
|
||||
asynchronousResult = responseStream.BeginRead(requestState.BufferRead, 0, RequestState.BUFFER_SIZE,
|
||||
new Crestron.SimplSharp.CrestronIO.AsyncCallback(ReadCallBack), requestState);
|
||||
Crestron.SimplSharp.CrestronIO.IAsyncResult asynchronousResult;
|
||||
do
|
||||
{
|
||||
asynchronousResult = responseStream.BeginRead(requestState.BufferRead, 0, RequestState.BUFFER_SIZE,
|
||||
new Crestron.SimplSharp.CrestronIO.AsyncCallback(ReadCallBack), requestState);
|
||||
}
|
||||
while (asynchronousResult.CompletedSynchronously && !requestState.Done);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.Console(1, this, "Exception: {0}", e);
|
||||
}
|
||||
while (asynchronousResult.CompletedSynchronously && !requestState.Done);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user