Ocelot中文文档-Websockets(转)
原文地址:https://www.cnblogs.com/snaildev/articles/9151717.html
Ocelot额外支持代理websockets。这个功能在问题 212中被提出。
为了是Ocelot代理websocket,你需要做如下事情。
在你的Configure方法中,你要告知应用程序使用WebSockets。
1
2
3
4
5
|
Configure(app => { app.UseWebSockets(); app.UseOcelot().Wait(); }) |
然后在你的ocelot.json中添加如下代码,用于配置websockets代理一个ReRoute。
1
2
3
4
5
6
7
8
9
10
11
|
{ "DownstreamPathTemplate" : "/ws" , "UpstreamPathTemplate" : "/" , "DownstreamScheme" : "ws" , "DownstreamHostAndPorts" : [ { "Host" : "localhost" , "Port" : 5001 } ], } |
使用这个配置,Ocelot将匹配所有进入的Websocket流量并将其代理到localhost:5001/ws。 更清晰的解释一下就是,Ocelot将接收来自上游客户端的消息,并将它们代理到下游服务,从下游服务接收消息并将这些消息代理到上游客户端。
已支持的
- 负载均衡
- 路由
- 服务发现
这意味着您可以运行websockets的下游服务,并在您的ReRoute配置中使用多个DownstreamHostAndPorts,或将您的ReRoute挂接到服务发现提供程序上,然后负载均衡上游请求......我认为这很酷:)
不支持的
不幸的是,很多Ocelot的功能都是非websocket所特有的,比如header和http客户端填充。 我列出了以下不适用的功能。
- 跟踪
- 请求Id
- 请求聚合
- 流量限制
- 服务质量
- 中间件注入
- 转换Header
- 委托处理程序
- 转换声明
- 缓存
- 认证 - 如果有人请求它,我们可能可以使用基本身份验证做些事情
- 授权
我不是100%确定这个功能在进入高速运转时会发生什么,所以请确保您彻底测试过!
如需转载,请在显眼处标明本文链接,谢谢。
笨一点没关系,只要自己不放弃自己