推荐一个.Net Core开发的Websocket群聊私聊的开源项目
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐一个.Net Core开发的Websocket群聊私聊的开源项目相关的知识,希望对你有一定的参考价值。
欢迎加入 .Net编程学习小圈子 ,一起打卡交流学习。
今天给大家推荐一个使用Websocket协议实现的、高性能即时聊天组件,可用于群聊、好友聊天、游戏直播等场景。
项目简介
这是一个基于.Net Core开发的、简单、高性能的通讯组件,支持点对点发送、群聊、在线状态的订阅。
该项目还包含群聊例子,可以用于学习。
技术架构
1、跨平台:基于.NetCore开发,支持Windows、Mono、Liunx、Windows Azure、Docker。
2、支持 .NetCore 6.0+。
3、组件:Redis。
组件功能
1、点对点通讯;
2、是否在线获取,以及在线状态订阅;
3、加入频道、离开频道、获取在线人数、清理未在线的客户端、获取客户加入的所有频道、发送群聊消息。
项目结构
FreeIM为通讯组件,ImServer为服务端、WebApi为群聊前端。
使用例子
服务端
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Console.OutputEncoding = Encoding.GetEncoding("GB2312");
Console.InputEncoding = Encoding.GetEncoding("GB2312");
app.UseDeveloperExceptionPage();
app.UseFreeImServer(new ImServerOptions
Redis = new FreeRedis.RedisClient(Configuration["ImServerOption:RedisClient"]),
Servers = Configuration["ImServerOption:Servers"].Split(";"),
Server = Configuration["ImServerOption:Server"]
);
配置信息
"ImServerOption":
//Reidis地址
"RedisClient": "127.0.0.1:6379,poolsize=10",
//集群地址,可以配置多个
"Servers": "127.0.0.1:6001",
//服务端地址
"Server": "127.0.0.1:6001"
群聊客户端
public void Configure(IApplicationBuilder app)
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Console.OutputEncoding = Encoding.GetEncoding("GB2312");
Console.InputEncoding = Encoding.GetEncoding("GB2312");
app.UseDeveloperExceptionPage();
app.UseRouting();
app.UseEndpoints(config => config.MapControllers());
app.UseDefaultFiles();
app.UseStaticFiles();
//Redis、服务端地址
ImHelper.Initialization(new ImClientOptions
Redis = new FreeRedis.RedisClient("127.0.0.1:6379,poolsize=10"),
Servers = new[] "127.0.0.1:6001"
);
ImHelper.Instance.OnSend += (s, e) =>
Console.WriteLine($"ImClient.SendMessage(server=e.Server,data=JsonConvert.SerializeObject(e.Message))");
//发送消息
ImHelper.EventBus(
t =>
Console.WriteLine(t.clientId + "上线了");
var onlineUids = ImHelper.GetClientListByOnline();
ImHelper.SendMessage(t.clientId, onlineUids, $"用户t.clientId上线了");
,
t => Console.WriteLine(t.clientId + "下线了"));
群聊截图
项目地址
https://github.com/2881099/FreeIM
- End -
觉得好看 点个在看👇
以上是关于推荐一个.Net Core开发的Websocket群聊私聊的开源项目的主要内容,如果未能解决你的问题,请参考以下文章
快速搭建CentOS+ASP.NET Core环境支持WebSocket