BeetleX轻松搭建HTTP和Weboskcet网关
在新版本的BeetleX.Bumblebee中實現了對Weboskcet代理的支持,因此使用BeetleX搭建同時支持HTTP和Weboskcet的網關只需要幾行代碼的工作就能完成;接下來構建一個簡單的網關程序并測試一下對asp.net core SignalR進行代理的應用。
引用組件
使用BeetleX構建網關只需要引用BeetleX.Bumblebee即可,不過你相信也不想通過硬編碼的方式來配置服務和負載策略;所以為了管理方便還是引用一下?BeetleX.Bumblebee.Configuration,這是組件的一個網關管理插件;除了這個外組件還提供了很多插件,在這里就不介紹了詳細可以訪問beetlex.io
搭建服務
使用組件搭建自己的網關真的只需要幾行代碼即可完成,代碼如下:
public class HttpServerHosted : IHostedService{private Gateway g;public virtual Task StartAsync(CancellationToken cancellationToken){g = new Gateway();g.HttpOptions(o =>{o.Port = 80;o.LogToConsole = true;o.WriteLog = true;});g.Open();g.LoadPlugin(typeof(Bumblebee.Configuration.Config).Assembly);if (Environment.OSVersion.Platform == PlatformID.Win32NT){var ps = new ProcessStartInfo($"http://localhost:{g.HttpServer.Options.Port}/__system/bumblebee/index.html"){UseShellExecute = true,Verb = "open"};Process.Start(ps);}return Task.CompletedTask;}public virtual Task StopAsync(CancellationToken cancellationToken){g.Dispose();return Task.CompletedTask;}}以上就是一個完全整網關的服務代碼,它在本機AnyIP的80端口開啟服務,啟動后可以看到組件的啟動情況。
構建一個SignalR項目
可以構建一個簡單的asp.net core SignalR項目并運行在5000端口上
配置代理
接下來就把80端代理到5000這個SignalR項目上,由于SignalR這個項目除了有websocket外還有傳統的http頁面;所以需要在網關中添加對應這個端口的http和ws服務,具體如下:
添加完成服務后還需要把服務添加到路由上
添加完成后點保存代理即可生效,接下來就可以訪問80了。
一個HTTP和Weboskcet網關服務就這樣完成是不是很簡單呢,其實組件的功能還有很多,如果需要了解可以訪問
beetlex.io
需要完全示例代碼可以訪問
https://github.com/IKende/BeetleX-Samples/tree/master/Gateway.Base
想體驗一下簡單的代理后的websocket聊天服務可以訪問
http://chat.beetlex.io
總結
以上是生活随笔為你收集整理的BeetleX轻松搭建HTTP和Weboskcet网关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP Strict Transpor
- 下一篇: [功能发布]Excel与PowerBI互