Я занимаюсь разработкой библиотеки классов, которая содержит общие методы для этих сценариев:Сохранение чат разговоров в базе данных SQL с помощью signalR
- Живой чат поддержки (1 на 1 частный текстовый чат, с большим количеством администраторов и гостей)
- Номера с большим количеством пользователей, где вы можете отправить широковещательные и личные сообщения
Эти две функции выше уже реализованы, и теперь это необходимо для моего приложения для сохранения сообщений.
Мой вопрос, что это лучший способ для хранения чатов в базе данных SQL:
Everytime я нажимаю отправить, я вставляю сообщение в базе данных?
Создайте список для каждого пользователя и каждый раз, когда я нажимаю кнопку «Отправить», сообщение сохраняется в списке пользователей, отправивших сообщение. Затем, если пользователь отключается, я собираюсь перебирать список сообщений и каждое сообщение вставлять их все в db.
Есть ли другие решения?
Что я сейчас делаю, это следующее. У меня есть этот метод, который находится в моем классе 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();
}
Я называю этот метод 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);
Это позволит получить много мнения и очень мало фактов. Это делает этот вопрос вне сферы действия SO. Я бы предложил вставить их, как они есть, но это зависит от того, что это приложение. –