ASP.NET SingalR不多介绍。让我介绍不如看官网,我这里就是直接上源代码,当然代码还是写的比较简单的,考虑的也少,希望各位技友多多提意见。

先简单介绍聊天室功能:

  • 用户加入聊天室,自动给用户名和头像。(可扩展用户自定义昵称和头像,未做)
  • 聊天信息发送,群聊。(可扩展1对1聊天,群组聊天,1对多聊天,扩展多种消息格式,未做)
  • 本地存储用户信息
  • 后台结合mongodb存储聊天信息,用户下次进入可以看到聊天记录(MongoDB .NET客户端的使用,可以用SQL或者缓存存储,不作为重点阐述)

写了这么多文字,是不是激不起兴趣来,好直接上一张图,然后搭建基本框架。

ASP.NET SingalR + MongoDB 实现简单聊天室(一):搭建基本框架

ok,我们开始搭建界面。

新建asp.net mvc 项目,然后添加一个SingalR集线器类。(不用手动引用singalR.dll,当然可以从nuget上安装)

ASP.NET SingalR + MongoDB 实现简单聊天室(一):搭建基本框架

其实hub代码比较简单,这里只为了实现简单聊天室功能,就不多写其他代码。因为未完善代码,所以暂时不公开。较为复杂点的代码,有兴趣的同学可以邮箱留言,我发给你们。

编写后台代码之前呢,先分析页面结构。首先,聊天基本内容包含:聊天内容,用户昵称,用户头像,用户发表时间,ok,那么新建一个model吧。

 1     public class ZjMessage : MongoBaseModel
 2     {
 3         public ZjMessage(){
 4             createTime = DateTime.Now.ToString("MM-dd hh:mm:ss");
 5         }
 6         public ZjMessage(string connectionId)
 7         {
 8             this.connectionId = connectionId;
 9         }
10         public string connectionId { get; set; }
11 
12         /// <summary>
13         /// 头像
14         /// </summary>
15         public string photo { get; set; }
16         /// <summary>
17         /// 消息内容
18         /// </summary>
19         public string msg { get; set; }
20         /// <summary>
21         /// 用户名
22         /// </summary>
23         public string username { get; set; }
24         /// <summary>
25         /// 用户ID  这个用户ID,是为了区分是谁发的,(判断消息展示在左边或者右边)
26         /// </summary>
27         public string userid { get; set; }
28         /// <summary>
29         /// 创建时间
30         /// </summary>
31         public string createTime { get; set; }
32     }
View Code

相关文章: