老九
老九
现已增加.net5的适配 https://github.com/dotnetcore/WebApiClient/commit/9ae2aed6305856430e6f96dfd665f00b857e9776
这个接口的设计,与原体系偏离了,没有能够利用起ITokenProviderFactory的功能。 要实现一个TokenProvider支持多个以key来区分的token,只需要参考DI的Key模式,为ITokenProvider增加 `void ClearToken(sting Key);`和`Task GetTokenAsync(string key);`即可。
使用[AliasOAuthTokenAttribute](https://github.com/dotnetcore/WebApiClient/blob/master/WebApiClientCore.Extensions.OAuths/Attributes/AliasOAuthTokenAttribute.cs)来实现。 此实现不需要改动到ITokenProviderFactory和ITokenProvider两个核心接口,所有TokenProvider实现类依然能使用。
此问题实际上是TryIoc如何支持Microsoft.Extensions.DependencyInjection。 你可以到TryIoc项目上提部问,或者通过搜索引擎来寻求答案;一般的,只要是还在活跃的ioc项目,都会支持Microsoft.Extensions.DependencyInjection。
做转发层的话,可以关注YARP项目
这个项目太老不维护了,推荐https://github.com/chkr1011/MQTTnet
与服务器有关系,请确保每个终端使用不同的clientId
这样也会造成相互挤着下线
如果你想让流量基于websocket传输,那不能直接在kestrel层使用YourConnectionHandler,而应该在asp.net层的websocket路由里使用YourConnectionHandler,此时会表现出以下现象: 1、ConnectionContext里面的ITransferFormatFeature.ActiveFormat默认为TransferFormat.Text,你可以根据实际是否修改为TransferFormat.Binary; 2、ConnectionContext的Transport对象,实际为websocket的负载数据的读取或写入,负载数据,当作流看待; ```c# app.MapConnectionHandler("/xxx_over_websocket", options => { options.WebSockets.SubProtocolSelector = ... }); ```
你可以把websocket帧理解为tcp帧,websocket帧里的payload理解为tcp帧的payload,多个websocket帧的payload串起来,就是websocket流,与tcp流是一个意思。