-
Notifications
You must be signed in to change notification settings - Fork 10k
/
IHttpConnectionOptions.ts
68 lines (57 loc) · 2.99 KB
/
IHttpConnectionOptions.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
import { HttpClient } from "./HttpClient";
import { MessageHeaders } from "./IHubProtocol";
import { ILogger, LogLevel } from "./ILogger";
import { HttpTransportType, ITransport } from "./ITransport";
import { EventSourceConstructor, WebSocketConstructor } from "./Polyfills";
/** Options provided to the 'withUrl' method on {@link @microsoft/signalr.HubConnectionBuilder} to configure options for the HTTP-based transports. */
export interface IHttpConnectionOptions {
/** {@link @microsoft/signalr.MessageHeaders} containing custom headers to be sent with every HTTP request. Note, setting headers in the browser will not work for WebSockets or the ServerSentEvents stream. */
headers?: MessageHeaders;
/** An {@link @microsoft/signalr.HttpClient} that will be used to make HTTP requests. */
httpClient?: HttpClient;
/** An {@link @microsoft/signalr.HttpTransportType} value specifying the transport to use for the connection. */
transport?: HttpTransportType | ITransport;
/** Configures the logger used for logging.
*
* Provide an {@link @microsoft/signalr.ILogger} instance, and log messages will be logged via that instance. Alternatively, provide a value from
* the {@link @microsoft/signalr.LogLevel} enumeration and a default logger which logs to the Console will be configured to log messages of the specified
* level (or higher).
*/
logger?: ILogger | LogLevel;
/** A function that provides an access token required for HTTP Bearer authentication.
*
* @returns {string | Promise<string>} A string containing the access token, or a Promise that resolves to a string containing the access token.
*/
accessTokenFactory?(): string | Promise<string>;
/** A boolean indicating if message content should be logged.
*
* Message content can contain sensitive user data, so this is disabled by default.
*/
logMessageContent?: boolean;
/** A boolean indicating if negotiation should be skipped.
*
* Negotiation can only be skipped when the {@link @microsoft/signalr.IHttpConnectionOptions.transport} property is set to 'HttpTransportType.WebSockets'.
*/
skipNegotiation?: boolean;
// Used for unit testing and code spelunkers
/** A constructor that can be used to create a WebSocket.
*
* @internal
*/
WebSocket?: WebSocketConstructor;
// Used for unit testing and code spelunkers
/** A constructor that can be used to create an EventSource.
*
* @internal
*/
EventSource?: EventSourceConstructor;
/**
* Default value is 'true'.
* This controls whether credentials such as cookies are sent in cross-site requests.
*
* Cookies are used by many load-balancers for sticky sessions which is required when your app is deployed with multiple servers.
*/
withCredentials?: boolean;
}