diff --git a/src/Microsoft.AspNetCore.SignalR.Client.TS/Connection.ts b/src/Microsoft.AspNetCore.SignalR.Client.TS/Connection.ts index e7462401af..3a2d5a226e 100644 --- a/src/Microsoft.AspNetCore.SignalR.Client.TS/Connection.ts +++ b/src/Microsoft.AspNetCore.SignalR.Client.TS/Connection.ts @@ -65,7 +65,7 @@ class Connection { transports.push(new ServerSentEventsTransport()); } if (transportName === 'longPolling') { - transports.push(new LongPollingTransport(null)); + transports.push(new LongPollingTransport()); } }); @@ -100,14 +100,6 @@ class Connection { return this.transport.send(data); } - set dataReceived(callback: DataReceived) { - this.dataReceivedCallback = callback; - } - - set onError(callback: ErrorHandler) { - this.errorHandler = callback; - } - stop(): void { if (this.connectionState != ConnectionState.Connected) { throw new Error("Cannot stop the connection if is not in the 'Connected' State"); @@ -116,4 +108,12 @@ class Connection { this.transport.stop(); this.connectionState = ConnectionState.Disconnected; } + + set dataReceived(callback: DataReceived) { + this.dataReceivedCallback = callback; + } + + set onError(callback: ErrorHandler) { + this.errorHandler = callback; + } } \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.SignalR.Client.TS/LongPollingTransport.ts b/src/Microsoft.AspNetCore.SignalR.Client.TS/LongPollingTransport.ts index a3bfec51a3..512477ad5a 100644 --- a/src/Microsoft.AspNetCore.SignalR.Client.TS/LongPollingTransport.ts +++ b/src/Microsoft.AspNetCore.SignalR.Client.TS/LongPollingTransport.ts @@ -1,20 +1,11 @@ class LongPollingTransport implements ITransport { - - private receiveCallback: (data: string) => void; private url: string; private queryString: string; private pollXhr: XMLHttpRequest; - // TODO: make the callback a named type - // TODO: string won't work for binary formats - constructor(receiveCallback: (data: string) => void) { - this.receiveCallback = receiveCallback; - } - connect(url: string, queryString: string): Promise { - this.queryString = queryString || ""; - this.url = url || ""; - + this.url = url; + this.queryString = queryString; this.pollXhr = new XMLHttpRequest(); // TODO: resolve promise on open sending? + reject on error this.poll(url + "/poll?" + this.queryString) @@ -27,7 +18,7 @@ class LongPollingTransport implements ITransport { this.pollXhr.send(); this.pollXhr.onload = () => { if (this.pollXhr.status >= 200 && this.pollXhr.status < 300) { - this.receiveCallback(this.pollXhr.response); + this.onDataReceived(this.pollXhr.response); this.poll(url); } else { diff --git a/src/Microsoft.AspNetCore.SignalR.Client.TS/ServerSentEventsTransport.ts b/src/Microsoft.AspNetCore.SignalR.Client.TS/ServerSentEventsTransport.ts index 3a234d7b80..41cc1e0eb6 100644 --- a/src/Microsoft.AspNetCore.SignalR.Client.TS/ServerSentEventsTransport.ts +++ b/src/Microsoft.AspNetCore.SignalR.Client.TS/ServerSentEventsTransport.ts @@ -1,12 +1,11 @@ // TODO: need EvenSource typings class ServerSentEventsTransport implements ITransport { - private receiveCallback: (data: string) => void; private eventSource: EventSource; private url: string; private queryString: string; - connect(url: string, queryString: string = ""): Promise { + connect(url: string, queryString: string): Promise { if (typeof (EventSource) === "undefined") { Promise.reject("EventSource not supported by the browser.") }