怎么在。net核心中使用FastHttpApi构建一个网站聊天室

  介绍

怎么在。net核心中使用FastHttpApi构建一个网站聊天室?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>创建项目

使用FastHttpApi构建一个web服务只需要创建一个普通ConsoleApp(控制台应用)

怎么在。net核心中使用FastHttpApi构建一个网站聊天室

创建项目后需要在Nuget中添加引用FastHttpApi

怎么在。net核心中使用FastHttpApi构建一个网站聊天室

只需要简单地引用Beetlex。FastHttpApi即可构建基于Http和Websocket通讯应用。

<>强创建逻辑

FastHttpApi对类和方法没有太多规则约束,只需要在类上定义一个控制器标签即可,接下来实现一个简单的网聊天室

(控制器)   ,public  class 控制器   ,{   ,//用户登陆   ,public  bool 登录(string ,昵称,IHttpContext 上下文)   ,{=,,context.Session.Name 昵称;   ,ActionResult  result =, new  ActionResult ();=,,result.Data  new  {, name =,绰号,message =,“login",, type =,“login",, time =, DateTime.Now.ToString (“T"),};   ,context.SendToWebSocket(结果);   ,return 真实;   ,}   ,//获取在线用户   ,public  object  ListOnlines (IHttpContext 上下文)   ,{   得到,return  r  context.Server.GetWebSockets拷贝()   where 才能;r.Session.Name  !=零   select 才能;new  {r.Session.Name的不同之处是,IP =, r.Session.RemoteEndPoint.ToString (),};   ,}      ,//发送聊天信息   ,public  bool 谈话(string 绰号,string 消息,IHttpContext 上下文)   ,{   ,ActionResult  result =, new  ActionResult ();=,,result.Data  new  {, name =,绰号,消息,type =,“talk",, time =, DateTime.Now.ToString (“T"),};   ,context.SendToWebSocket(结果);   ,return 真实;   ,}   以前,}

以上代码分别定义登陆,获取在线用户和碱性方法,方法的定义同样也是没有约束性,对于IHttpContext这些参数都是根据自己需要定义,如果不需要则不用在方法中定义它。接下来的事情就是要在页面上调用它,大家知道在页面调用http或websocket需要定义一些代码和指定相应的URL。但Beetlex.FastHttpApi提供一个非常便利的方式,通过安装一个插件可以自动生成这些代码插件安装介绍(暂只支持vs2017)。当插件安装完成后只需要设置类文件的自定义工具即可

怎么在。net核心中使用FastHttpApi构建一个网站聊天室

插件会在当前类文下生成一个js文件,文件里把调用方法的URL和参数都定义完成

var 登录URL=& # 39;美元/登录# 39;;   useHttp function  $登录(昵称)   {   ,return  api(登录url,美元{昵称:昵称},useHttp) .sync ();   }   function 登录异步美元(昵称,useHttp)   {   ,return  api(登录url,美元{昵称:昵称},useHttp);   }   var  ListOnlines url=& # 39;美元/listonlines& # 39;;   function  ListOnlines美元(useHttp)   {   ,return  api (ListOnlines美元url, {}, useHttp) .sync ();   }   function  ListOnlines异步(useHttp)美元   {   ,return  api (useHttp ListOnlines美元url, {});   }   var  $和$ url=& # 39;/谈# 39;;   function 谈论美元(昵称、消息useHttp)   {   ,return  api($和$ url,{昵称:昵称、消息:消息},useHttp) .sync ();   }   function 讨论异步美元(昵称、消息、useHttp)   {   ,return  api($和$ url,{昵称:昵称、消息:消息},useHttp);   }

这个文件非常简单,主要包括URL,同步方法和异步方法。这个js文件需要依赖FastHttpApi。js才能使用,所以在页面上必须把这个文件也引用上。接下来就是页面脚本的使用

& lt; script>   ,function 接收(结果),{   ,if  (result.Data.type ==, & # 39;登录# 39;,| |,result.Data.type ==, & # 39;退出# 39;),{   ,ListOnlines异步美元(). execute (function (结果),{   时间=listUserControl.Data 才能;result.Data;   ,});   ,}   ,messages.push (result.Data);   ,var  objDiv =, . getelementbyid (“lstTalk");=,,objDiv.scrollTop  objDiv.scrollHeight;   ,}      ,async  function  sendMessage (), {   美元,var  msg =, (& # 39; # talkMsg& # 39;) .val ();   ,if (味精),{   ,警报(“enter  message");   ,返回;   ,}      ,var  result =, await 谈论美元(昵称,味精);   ,if  (result.Code  !=, 200)   ,警报(result.Error);   其他的,   ,$ (& # 39;# talkMsg& # 39;) .val (& # 39; & # 39;);      ,}   ,async  function 登录(),{   美元,nickName =,(& # 39; #用户名# 39;).val ();   ,if (昵称!),{   ,警报(“enter 你名字!“)   ,返回;   ,}   ,var  result =, await 美元登录(昵称);   ,if  (result.Code ==, 200), {   ,$(& # 39;#登陆条# 39;)hide ();   ,$ (& # 39;# talkBar& # 39;),告诉();   ,}   ,else  {   ,警报(result.Error);   ,}   ,}   ,& lt;/script>

怎么在。net核心中使用FastHttpApi构建一个网站聊天室