提供的功能如下:
1、在线聊天
2、心跳包检测机制
3、群聊
首先,巧妇难为无米之炊,这是总所周知的。这里我们需要两个东西,一个是Asp.net MVC4项目;另一个是Signalr组件。接着在项目中,新建一个文件夹名称为Hubs,在这个文件夹下面新建一个名称为ClientPushHub的类,定义如下:
public class ClientPushHub : Hub
{
private UsersOnLineBLL blluseronline = new UsersOnLineBLL();
public void Connect(string userID)
{
UsersOnLine useronline = blluseronline.FindByID(userID);
useronline.ConnectionIds = GetConnectionIds(this.Context.ConnectionId,useronline.ConnectionIds);
useronline.OnlineCount = 0;
useronline.IsOnline = true;
useronline.OnlineTime = DateTime.Now;
blluseronline.Update(useronline,userID);
ChatHub chatHub = new Hubs.ChatHub();
Clients.All.loginUser(chatHub.GetOnlineUsersOnHub());
}
public void TriggerHeartbeat(string userID)
{
UsersOnLine useronline = new UsersOnLine();
useronline.OnlineCount = 0;
useronline.OnlineTime = DateTime.Now;
blluseronline.UpdateByCondition(useronline, string.Format("UserID='{0}'", userID), new string[] { "OnlineCount", "OnlineTime" });
}
private string GetConnectionIds(string ConnectionId,string ConnectionIds)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(ConnectionIds))
{
string[] array = ConnectionIds.Split(',');
if (array.Length < 10)
{
sb.Append(ConnectionIds);
sb.Append(",");
}
}
sb.Append(Conn