AspNetCore3.0 WebApi+SignalR 实现通信

第一步:创建webapi项目
第二部:浏览NuGet 搜索Microsoft.AspNetCore.SignalR安装
AspNetCore3.0 WebApi+SignalR 实现通信_第1张图片
第三步:新建Hub类

public class ChatHub : Hub
    {
        /// 
        /// SendMsg用于前端调用
        /// 
        /// 此处我传入的json字符串,可根据自己需求修改
        /// 
        public Task SendMsg(string json)
        {
            JObject jObj = JObject.Parse(json);
            //通过属性名或者索引来访问,仅仅是自己的属性名,而不是所有的
            JToken UserNameToken = jObj["UserName"];
            JToken MessageToken = jObj["Message"];
            //在客户端实现此处的Show方法
            return Clients.All.SendAsync("Show", UserNameToken.ToString()+":"+MessageToken.ToString());
        }
    }

第四部:配置Startup
1.配置ConfigureServices(注意:3.0中跨域不允许“*”,所以必须配置你的web地址)

//跨域
            services.AddCors(options =>
            {
                options.AddPolicy("SignalRCors",
                    policy => policy
                                    .AllowAnyHeader()
                                    .AllowAnyMethod()
                                    .WithOrigins("http://localhost:52000")
                                    .AllowCredentials()); ;
            });
            services.AddSignalR();

2.配置Configure

app.UseCors("SignalRCors");

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();

                endpoints.MapHub("/chathub");
            });

第五步:html
注意:html必须部署起来 部署后的地址填入WithOrigins中



	
		
	
	
		
		

    第六步:signalr.js的由来
    1.在“解决方案资源管理器” 中,右键单击项目,然后选择“添加” >“客户端库” 。
    2.在“添加客户端库” 对话框中,对于“提供程序” ,选择“unpkg” 。
    3.对于“库” ,输入 @microsoft/signalr@latest。
    4.选择“选择特定文件” ,展开“dist/browser” 文件夹,然后选择“signalr.js” 和“signalr.min.js”
    AspNetCore3.0 WebApi+SignalR 实现通信_第2张图片

    你可能感兴趣的:(代码)