推荐一个.Net Core开发的Websocket群聊、私聊的开源项目

这篇具有很好参考价值的文章主要介绍了推荐一个.Net Core开发的Websocket群聊、私聊的开源项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天给大家推荐一个使用Websocket协议实现的、高性能即时聊天组件,可用于群聊、好友聊天、游戏直播等场景。

项目简介

这是一个基于.Net Core开发的、简单、高性能的通讯组件,支持点对点发送、群聊、在线状态的订阅。

该项目还包含群聊例子,可以用于学习。

技术架构

1、跨平台:基于.NetCore开发,支持Windows、Mono、Liunx、Windows Azure、Docker。

2、支持 .NetCore 6.0+。

3、组件:Redis。

组件功能

1、点对点通讯;

2、是否在线获取,以及在线状态订阅;

3、加入频道、离开频道、获取在线人数、清理未在线的客户端、获取客户加入的所有频道、发送群聊消息。

项目结构

推荐一个.Net Core开发的Websocket群聊、私聊的开源项目

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 + "下线了"));
}

群聊截图

推荐一个.Net Core开发的Websocket群聊、私聊的开源项目

项目地址

https://github.com/2881099/FreeIM

更多开源项目请查看:一个专注推荐优秀.Net开源项目的榜单

- End -

文章首发于公众号【编程乐趣】,欢迎大家关注。
推荐一个.Net Core开发的Websocket群聊、私聊的开源项目文章来源地址https://www.toymoban.com/news/detail-437948.html

到了这里,关于推荐一个.Net Core开发的Websocket群聊、私聊的开源项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 推荐一个.Net分布式微服务开发框架

    在给大家介绍之前,我们一起来看看分布式架构的使用场景与好处。 针对一些互联网系统,大数据、高并发和快速响应,都是系统必须满足的 ,而单机系统的架构是无法满足这样的需求的,这时候我们就需要用到分布式的架构。 分布式架构具备以下的好处: 高性能 :把高

    2024年02月10日
    浏览(31)
  • 一个.Net Core开发的开源动态壁纸软件

    推荐一个Github上Start超过10.8K的超火、好用、强大的、内置很多优美的动态壁纸软件。 这是基于.Net Core+WPF开发的、开源的动态壁纸软件,壁纸设置支持任何文件形式,包括:本地视频、网络视频、图片、Html、网络、Unity单机游戏、Godot游戏等;还支持自定义壁纸的属性,自定

    2024年02月05日
    浏览(33)
  • Unity Metaverse(七)、基于环信IM SDK实现的好友系统、私聊、群聊

    在之前的文章中已经介绍了如何接入环信IM Unity SDK,及基于该SDK实现用户的登录注册功能,该篇文章介绍的是如何通过它来实现用户管理、好友系统(联系人管理)及聊天消息管理功能。 SDK为我们提供的用户属性管理包括 用户昵称 、 头像 、 邮箱 、 电话 、 性别 、 签名

    2024年02月08日
    浏览(37)
  • 推荐一个基于.Net Framework开发的Windows右键菜单管理工具

    平常在我们电脑,我们都会安装非常多的软件,很多软件默认都会向系统注册右键菜单功能,这样方便我们快捷打开。比如图片文件,通过右键的方式,快捷选择PS软件打开。 如果我们电脑安装非常多的软件,就会导致我们右键菜单的列表非常多,但是很多软件我们是用不到

    2024年02月02日
    浏览(57)
  • 基于Springboot整合Socket仿微信实现群聊、私聊功能。实现客户端client,服务端server心跳维护、超时机制【一文通】

    博主介绍: ✌java资深开发工程师、Java领域优质创作者,博客之星、专注于Java技术领域和学生毕业项目实战,面试讲解跟进,高校老师/讲师/同行交流合作✌ 胡广愿景: \\\"比特星球\\\",致力于帮助底层人员找到工作, 让每个底层人员都能找到属于自己的星球。 拓展学习领域,获

    2024年02月19日
    浏览(37)
  • 关于ASP.NET Core WebSocket实现集群的思考

    前言     提到 WebSocket 相信大家都听说过,它的初衷是为了解决客户端浏览器与服务端进行双向通信,是在单个 TCP 连接上进行全双工通讯的协议。在没有WebSocket之前只能通过浏览器到服务端的请求应答模式比如轮询,来实现服务端的变更响应到客户端,现在服务端也可以主

    2024年04月14日
    浏览(34)
  • 如何入门.NET Core ? 推荐这10个优秀的开源项目!

    .NET 5马上就要发布了,还不知道这些.NET Core开源项目? 只推荐干货!当然这些开源项目都是个人或组织开发的。 1.Ant Design Blazor .NET进行客户端Web开发又一利器。 微软官方认可,微软Build2020开发者大会Blazor介绍中,提及Ant Design Pro。一图胜千言,得到微软认可是对作者最大的

    2024年02月08日
    浏览(32)
  • ASP.NET Core 中使用 WebSocket 协议进行实时通信

    介绍 在 ASP.NET Core 中使用 WebSocket 协议创建实时通信的完整示例涉及几个步骤。在此示例中,我们将创建一个简单的聊天应用程序,用户可以在其中实时发送和接收消息。此示例假设您对 ASP.NET Core 和 C# 有基本了解。 步骤1.创建一个新的ASP.NET Core项目 首先,使用 Visual Studio 或

    2024年01月25日
    浏览(32)
  • 推荐一款基于 .NET Core开源的小程序商城系统

    由于疫情的缘故,很多商家都把线下的战场转移到线上了。而小程序就成为商家越来越看中的新战场,因为它能够帮助克服疫情对于经济的影响,开辟新的零售模式。今天就给大家推荐一款开源的小程序商城系统。 项目简介 这个是一个基于 .NET Core构建的简单、跨平台、模块

    2024年02月09日
    浏览(31)
  • 微信小程序如何使用原生Websocket与Asp.Net Core SignalR 通信

    如题,这可能算是.net 做小程序的服务端时,绕不开的一个问题,老生常谈了。同样的问题,我记得我2018/19年的一个项目的解决方案是: 修改官方的SignalR.js的客户端 :把里面用到浏览器的Websocket改成微信小程序的官方api的。目前网上也有不少这样的方案,已经改好开源了;

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包