2015-05-18 3 views
0

У меня проблемы с сохранением сообщений в sql DB. Я использую этот проект http://www.codeproject.com/Articles/732190/Real-Time-Web-Solution-for-Chat-by-MVC-SignalR-H?msg=5059882#xx5059882xxSignalR сохранение/получение сообщений из разговора

Я сохраняю каждое сообщение в БД при нажатии кнопки отправки.

На стороне сервера на классе хаб у меня есть:

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/имя пользователя, и я не знаю, где я должен передать его в качестве параметра. Withou that identiverID/username Я не могу получить историю сообщений между этими двумя пользователями.

Как я могу решить эту проблему?

ответ

0

В вашем коде вы не отправляете сообщение в приемник, а в группу приемников! Вы можете сохранить имя группы и перестроить историю сообщений между пользователями группы. (не 2 пользователя)

+0

В этом случае группа содержит только 2 пользователя. Моя проблема в том, что я не могу получить идентификатор получателя каждый раз, когда я отправляю сообщение –

+0

в свой код, когда я отправляю сообщение конкретному пользователю , у меня должен быть свой идентификатор пользователя. Прежде чем отправить сообщение, если я отправлю сообщение группе пользователей, мне не нужно знать идентификаторы пользователей внутри этой группы. (точно так же, как whatsapp). в любом случае, если в этой группе есть только 2 пользователя, почему бы вам не сохранить идентификатор пользователя на сервере signalr при создании группы? –

Смежные вопросы