Даша Циклаури: асинхронно в бд писать нельзя из-за получения списка при первом входе в диалог. Потом клиент уже не обращается к базе для получения смс, а просто получает новые сообщения от ws сервера
в итоге каждое смс это как минимум 3 запроса (получить id всех собеседников, и добавить это смс в бд отправителю и всем собеседникам (каждый собеседник это новый вопрос).
Ну смотрите. У нас 2+ собеседника. Есть id диалога. По id диалога мы получаем id всех собеседников и каждому добавляем это сообщение. Многие люди залпом шлют по 5 смс с 1 словом (думаю вы поняли что я имею введу).
func Get(patch string) (*template.Template, bool) {
rw.RLock()
defer rw.RUnlock()
q, w := st[patch]
if w {
e := new(template.Template)
e = q
return e, true
}
return q, false
}