简单聊天室

使用持久链接类我们就可以做一些即时通讯的应用了,我使用Group做了一个简单的聊天室,先上图技术细节下面再讲

可以加入聊天室、创建聊天室、发送消息,下面就说说我是如何通过Group做出来的

持久链接类有一个Groups的对象,通过这个对象,我们可以进行分组添加人员、发送消息、删除人员等操作

在连接事件中,给当前游客指定随机名称,并且返回当前已有的聊天室信息

protected override Task OnConnected(IRequest request, string connectionId){var outPut = new OutPut{ResultType = "RoomList",Data = RoomList,UserName = $"游客{Rdom.Next(1, 999)}"};//返回房间信息return Connection.Send(connectionId, JsonConvert.SerializeObject(outPut));}

下面的代码做了剩下所有的处理,先从创建聊天室开始讲起,如果客户端的请求Action是createRoom那么当前操作就是创建聊天室,聊天室id是一个随机生成的Guid,并且把当前的游客添加到当前聊天室中

加入聊天室也是非常简单的,使用 Groups.Add方法可以轻松的做到,然后再进行广播给当前聊天室中的所有人推送有新的游客加入

发送消息则是最简单的了,可以看到最后的发送消息最后一个参数 connectionid,因为是当前人去发送消息 所以把当前人排除掉,给聊天室里的其他所有人发送

protected override Task OnReceived(IRequest request, string connectionId, string data){var dto = JsonConvert.DeserializeObject<GroupDto>(data);var outPut = new OutPut{ResultType = "msgResult",Data = $"{dto.UserName} : {dto.Data}",CurrentRoomId = dto.RoomId};if (dto.Action.Equals("jionUs")){//加入聊天室
                Groups.Add(connectionId, dto.RoomId);outPut.Data = $"欢迎{dto.UserName}加入{dto.RoomName}聊天室";outPut.CurrentRoomId = dto.RoomId;Connection.Send(connectionId, JsonConvert.SerializeObject(outPut));return Groups.Send(dto.RoomId, JsonConvert.SerializeObject(outPut));}if (dto.Action.Equals("createRoom")){//创建聊天室var room = new Group() { RoomId = Guid.NewGuid().ToString(), RoomName = dto.RoomName };Groups.Add(connectionId, room.RoomId);dto.RoomId = room.RoomId;RoomList.Add(room);//返回聊天室列表outPut.ResultType = "RoomList";outPut.Data = RoomList;outPut.CurrentRoomId = dto.RoomId;//发送消息return Connection.Send(connectionId, JsonConvert.SerializeObject(outPut));}//发送消息return Groups.Send(dto.RoomId, JsonConvert.SerializeObject(outPut), connectionId);}

转载于:https://www.cnblogs.com/LiangSW/p/6343259.html

Asp.Net SignalR - 简单聊天室实现相关推荐

  1. c聊天室系统asp ajax,利用AJAX和ASP.NET实现简单聊天室

    利用AJAX和ASP.NET实现简单聊天室 我的第一个简单的Chatroom是用ASP3.0写成的.那无外乎有二个TextBox,他们发送消息 给程序变量然后显示在一个每秒刷新的页面上.在那个时代,一 ...

  2. java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是:         1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...

  3. node.js入门 - 2.创建一个简单聊天室

    这篇文章将通过开发一个简单聊天室的方式,介绍node.js的net模块. 一.第一版,只向客户端发送信息   我们先实现一个简单的版本,代码如下: var net=require('net'); va ...

  4. asp.net ajax聊天室,ASP.NET MVC4异步聊天室的示例代码

    本文介绍了ASP.NET MVC4异步聊天室的示例代码,分享给大家,具体如下: 类图: Domain层 IChatRoom.cs using System; using System.Collecti ...

  5. 利用socket.io+nodejs打造简单聊天室

    代码地址如下: http://www.demodashi.com/demo/11579.html 界面展示: 首先展示demo的结果界面,只是简单消息的发送和接收,包括发送文字和发送图片. ws说明: ...

  6. java jsp聊天系统_java web实现简单聊天室

    目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...

  7. SpringBoot +WebSocket实现简单聊天室功能实例

    SpringBoot +WebSocket实现简单聊天室功能实例) 一.代码来源 二.依赖下载 三.数据库准备(sql) 数据库建表并插入sql 四.resources文件配置 application ...

  8. swoole 项目实战——实现简单聊天室

    前言:了解了概念之后就应该练练手啦,不然就是语言的巨人,行动的矮子啦 代码仓库 实战 swoole[聊天室] 在线体验 准备工作 需要先看初识 swoole[上],了解基本的服务端 WebSocket ...

  9. python socket 网络聊天室_Python基于Socket实现简单聊天室

    本文实例为大家分享了Python基于Socket实现简单聊天室,供大家参考,具体内容如下 服务端 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Ti ...

最新文章

  1. 20080330 - strong-typing and weak-typing
  2. 微信小程序开发的快速步骤方法和最大的坑
  3. Linux学习Vim使用及账号用户管理
  4. android标题栏上增加按钮,Android:向自定义标题栏添加按钮
  5. 浏览器访问局域网共享文件服务器,局域网文件共享:Filezilla-IE 轻松解决(图)...
  6. html酒店管理模板,酒店管理系统流程图模板分享及绘制技巧
  7. 实例详解——编译器命令#pragma section作用于函数时作用域是否覆盖到其子函数...
  8. 利用Openyxl为excel批量插入表头行(Excel读写基础操作)——上
  9. 单片机C语言九个重要的知识点总结
  10. Tip | 使用GitHubDesktop提交 本地existing项目
  11. 阿里笔试模拟题-49.吃奶酪
  12. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-22期...
  13. Re-ID Driven Localization Refinement for Person Search
  14. c语言课程设计三色球问题,C++三色球问题描述与算法分析
  15. JavaScript HSL拾色器
  16. [论文总结] 种群、保护与生态遗传学笔记
  17. 面试字节跳动的一点小经验
  18. 【LSSVM回归预测】基于matlab人工蜂群算法优化最小二乘支持向量机LSSVM数据回归预测【含Matlab源码 2213期】
  19. oracle 11g安装过程中问题:移动bin\oralbac11.dll 到bin\oralbac11.dll.dbl出错
  20. java计算机毕业设计问卷调查系统源码+数据库+系统+lw文档+mybatis+运行部署

热门文章

  1. 茅台少女踩曲玄机何在?
  2. 有时候能讲出来,比沉默要好吧
  3. 5个层次的赚钱模式,看看你是哪一种?
  4. 学习做生意的知识重要吗?
  5. 打着改造传统市场的旗号玩垄断
  6. 玩花花肠子做不成生意
  7. 年轻人找不到自己喜欢的工作,怎么办?
  8. 做windows界面,用QT还是MFC?
  9. XBOX Series X规格如此强悍,如果被破解安装了win10,将对PC行业带来什么影响?
  10. 5G时代到来,那我们现在用的4G手机怎么办?