小编Joa*_*nto的帖子

使用signalR在sql数据库中存储聊天对话

我正在开发一个包含这些场景的通用方法的类库:

  • 实时支持聊天(1对1私人文字聊天,有很多管理员和访客)
  • 有许多用户的房间,您可以发送广播和私人消息

上面的这两个功能已经实现,现在我的应用程序需要保存消息.

我的问题是,在SQL数据库中存储聊天对话的最佳方法是什么:

  1. 每次我点击发送,我都会在数据库中插入消息?

  2. 为每个用户创建一个列表,每次单击"发送"时,该消息都会保存在发送该消息的用户列表中.然后,如果用户断开连接,我将迭代消息列表,并为每个消息插入数据库中的所有消息.

还有其他解决方案吗?

我现在正在做的是以下内容.我有这个方法,它位于我的Hub类:

public void saveMessagetoDB(string userName, string message)
{
    var ctx = new TestEntities1();

    var msg = new tbl_Conversation {Msg = message};
    ctx.tbl_Conversation.Add(msg); 
    ctx.SaveChanges();           
}
Run Code Online (Sandbox Code Playgroud)

saveMessagetoDB在客户端HTML文件中调用此方法,如下所示:

$('#btnSendMessage').click(function () {
       var msg = $("#txtMessage").val();

       if (msg.length > 0) {

           var userName = $('#hUserName').val();
           // <<<<<-- ***** Return to Server [  SaveMessagetoDB  ] *****
           objHub.server.saveMessagetoDB(userName, msg);
Run Code Online (Sandbox Code Playgroud)

sql-server chat messages signalr

7
推荐指数
1
解决办法
4468
查看次数

标签 统计

chat ×1

messages ×1

signalr ×1

sql-server ×1