我使用@aspnet/signalr官方Javascript客户端
此npm包
我想知道是否有方法可以将标头配置添加到客户端连接标头中
如何建立连接
发布于 2019-03-04 16:39:56
在做了一些研究之后更新
signalR js/ts客户端库似乎不支持以任何方式添加自定义头
因此,我们的解决方案是通过查询字符串发送参数,并使服务器API支持它
由于信号R URL连接没有显示在地址栏中,所以它有点安全
例如:
const connection = new HubConnectionBuilder()
.withUrl(
`${signalrUrl}&${key}=${value}`)
.build();
发布于 2021-03-02 00:49:53
的定义
我得到了一个
属性
在2020年初。(它在文档网站上不可见,但在Typescript定义文件中。)您现在可以执行以下操作:
const connection = new signalR.HubConnectionBuilder()
.withUrl("https://some.signalr-host.com", {
headers: {"foo": "bar"}
})
.build();
发布于 2020-05-29 19:20:18
基本上你可以向hubConnecitonBuilder提供一个自定义的HttpClient,它允许你对signalR请求做任何你想做的事情,对于我来说,这对于一个azure APIManagement背后的协商部分来说是非常有趣的:
let options: IHttpConnectionOptions = {
httpClient: {
getCookieString: (url) => {
return '';
},
post: (url, httpOptions) => {
return this.http.post(url, null, {
headers: httpOptions.headers,
withCredentials: false
})
.toPromise()
.then(
res => {
return {
statusCode: 200,
statusText: null,
content: JSON.stringify(res)
};
},
err => err
);
}
}
}
this._hubConnection = new HubConnectionBuilder()
.withUrl(environment.host_url + this.routes.notification + '?userId=' + userId, options)
.build();
在我的例子中,我的自定义头部(在这里不可见)是由我的angular应用程序http拦截器添加的,它现在可以拦截@aspnet/signalr http请求并添加适当的头部,因为我正在使用我的应用程序HttpClient来发出我的请求,而不是库中的请求。
https://stackoverflow.com/questions/54825739
复制相似问题