Adapting TS-client to work with non-level-2 xhr
This commit is contained in:
parent
a702713cd4
commit
cddc5f8a75
|
|
@ -33,7 +33,7 @@ export class HttpClient implements IHttpClient {
|
||||||
xhr.send(content);
|
xhr.send(content);
|
||||||
xhr.onload = () => {
|
xhr.onload = () => {
|
||||||
if (xhr.status >= 200 && xhr.status < 300) {
|
if (xhr.status >= 200 && xhr.status < 300) {
|
||||||
resolve(xhr.response);
|
resolve(xhr.response || xhr.responseText);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
reject(new HttpError(xhr.statusText, xhr.status));
|
reject(new HttpError(xhr.statusText, xhr.status));
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,12 @@ export class LongPollingTransport implements ITransport {
|
||||||
connect(url: string, requestedTransferMode: TransferMode): Promise<TransferMode> {
|
connect(url: string, requestedTransferMode: TransferMode): Promise<TransferMode> {
|
||||||
this.url = url;
|
this.url = url;
|
||||||
this.shouldPoll = true;
|
this.shouldPoll = true;
|
||||||
|
|
||||||
|
if (requestedTransferMode === TransferMode.Binary && (typeof new XMLHttpRequest().responseType !== "string")) {
|
||||||
|
// This will work if we fix: https://github.com/aspnet/SignalR/issues/742
|
||||||
|
throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");
|
||||||
|
}
|
||||||
|
|
||||||
this.poll(this.url, requestedTransferMode);
|
this.poll(this.url, requestedTransferMode);
|
||||||
return Promise.resolve(requestedTransferMode);
|
return Promise.resolve(requestedTransferMode);
|
||||||
}
|
}
|
||||||
|
|
@ -197,9 +203,13 @@ export class LongPollingTransport implements ITransport {
|
||||||
if (pollXhr.status == 200) {
|
if (pollXhr.status == 200) {
|
||||||
if (this.onDataReceived) {
|
if (this.onDataReceived) {
|
||||||
try {
|
try {
|
||||||
if (pollXhr.response) {
|
let response = transferMode === TransferMode.Text
|
||||||
this.logger.log(LogLevel.Information, `(LongPolling transport) data received: ${pollXhr.response}`);
|
? pollXhr.responseText
|
||||||
this.onDataReceived(pollXhr.response);
|
: pollXhr.response;
|
||||||
|
|
||||||
|
if (response) {
|
||||||
|
this.logger.log(LogLevel.Information, `(LongPolling transport) data received: ${response}`);
|
||||||
|
this.onDataReceived(response);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.logger.log(LogLevel.Information, "(LongPolling transport) timed out");
|
this.logger.log(LogLevel.Information, "(LongPolling transport) timed out");
|
||||||
|
|
|
||||||
|
|
@ -4,4 +4,4 @@ export * from "./HttpClient"
|
||||||
export * from "./HubConnection"
|
export * from "./HubConnection"
|
||||||
export * from "./Transports"
|
export * from "./Transports"
|
||||||
export * from "./Loggers"
|
export * from "./Loggers"
|
||||||
|
export * from "./MessagePackHubProtocol"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue