【问题标题】:SignalR saving / retrieving messages from conversationSignalR 从对话中保存/检索消息
【发布时间】:2015-07-30 04:11:00
【问题描述】:

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

单击发送按钮时,我将每条消息都保存在 DB 中。

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

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 / 用户名,我不知道我必须将它作为参数传递到哪里。如果没有该 reveiverID/用户名,我将无法检索这两个用户之间的消息历史记录。

我该如何解决这个问题?

【问题讨论】:

    标签: signalr


    【解决方案1】:

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

    【讨论】:

    • 在这种情况下,该组最多只包含2个用户..我的问题是我每次发送消息时都无法获取receiverID
    • 在我的代码中,当我向特定用户发送消息时,我必须有它的用户 ID 在我发送消息之前,如果我向一组用户发送消息,我不需要知道该组内的用户 ID。 (就像whatsapp一样)。无论如何,如果该组中只有 2 个用户,为什么不在创建组时将用户 ID 存储在 Signalr Server 中?
    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多