SignalR保存/检索来自对话

时间:2015-05-18 15:13:03

标签: signalr

我在sql DB中保存邮件时遇到问题。我正在使用这个项目 http://www.codeproject.com/Articles/732190/Real-Time-Web-Solution-for-Chat-by-MVC-SignalR-H?msg=5059882#xx5059882xx

单击发送按钮时,我将保存数据库中的每条消息。

在集线器类的服务器端,我有:

public void SendMessageToGroup(string userName, string message, int UserID)
{

    if (UsersList.Count != 0)
    {
        var strg = (from s in UsersList where (s.UserName == userName) select s).First();
        MessageList.Add(new MessageInfo { UserName = userName, Message = message, UserGroup = strg.UserGroup, MsgDate = DateTime.Now.ToString() });
        string strgroup = strg.UserGroup;
        //string UserID = strg.UserID;
        saveMessagetoDB(userName, message, DateTime.Now.ToString(), UserID);
        // If you want to Broadcast message to all UsersList use below line
        // Clients.All.getMessages(userName, message);

        //If you want to establish peer to peer connection use below line so message will be send just for user and admin who are in same group
        //***** Return to Client *****
        Clients.Group(strgroup).getMessages(userName, message, DateTime.Now.ToString());
    }

}

在客户端,我有:

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



       if (msg.length > 0) {

           //// <<<<<-- ***** Return to Server [  SaveMessagetoDB  ] *****
           //objHub.server.saveMessagetoDB(userName, msg, msgDate);
           // <<<<<-- ***** Return to Server [  SendMessageToGroup  ] *****
           objHub.server.sendMessageToGroup(userName, msg, UserID);

       }
   });

我的问题是我没有保存receiverID /用户名,我也不知道在哪里将其作为参数传递。如果我没有发明ID /用户名,我就无法检索这两个用户之间的消息历史记录。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在您的代码中,您不是向接收者发送消息,而是向一组接收者发送消息!您可以保存组名称并在组用户之间重建消息历史记录。 (不是2个用户)