Я хочу записать историю сообщений socket.io, то есть содержание двух пользователей, которые говорили, для последующего использования. Есть ли встроенные функции socket.io, чтобы реализовать это, или если нет, что это хороший способ реализовать это?есть хороший способ сохранить историю сообщений socket.io
ответ
Во-первых, вам нужно каким-то образом идентифицировать пользователей с уникальным идентификатором, который не исчезает, когда пользователь отключается, например, имя пользователя или адрес электронной почты.
Все сообщения в разговоре должны быть как-то сохранены на сервере, как в «чате-объекте» для разговора между двумя пользователями.
Периодически, когда пользователь отключается или каждый раз, когда изменяется «chat-object» (например, новое сообщение), сохраните «chat-object» в базе данных любого типа, который вам нравится. Вы можете использовать JSON для сериализации «chat-object», сохранить его любым способом (например, пользовательский файл, базу данных mysql или что-то еще). Чтобы сериализовать объект, используйте приведенный ниже код на сервере узла:
var chatString = JSON.stringify(theChatObject);
Сохранить строку вместе с уникальными идентификаторами двух пользователей. Поэтому, когда начинается новый разговор между теми же двумя людьми. Вы можете просто перейти к своему файлу или базе данных и получить старый чат-объект, а также неэтериализовать его с помощью следующего кода.
var oldChat = JSON.parse(theRetrievedChatString);
- 1. Есть ли способ ускорить функцию canvas.toDatalessJSON(), чтобы сохранить историю холста?
- 2. Есть ли способ сохранить историю паролей пользователя в приложении ASP.Net?
- 3. Tclx: Есть ли способ сохранить историю с помощью commandloop
- 4. Есть ли способ сохранить последнюю трансляцию emit - socket.io и node.js
- 5. Есть ли хороший способ сохранить комментарии при изменении кода clojure?
- 6. есть хороший способ сохранить и показать редактирование веб-документов
- 7. Каков хороший способ отображения пользовательских сообщений
- 8. Есть хороший способ объявить BroadcastReceiver?
- 9. Есть ли способ сохранить порядок сообщений в постоянном соединении SignalR?
- 10. Каков наилучший способ сохранить историю изменений в полях базы данных?
- 11. Любой хороший способ сохранить неподписанную форму?
- 12. SSDT - Есть ли способ зарегистрировать историю развертывания?
- 13. Есть ли способ проверить историю перезагрузки Jenkins
- 14. возможность сохранить историю цен
- 15. Scala: хороший способ сохранить пары строк
- 16. Хороший способ сохранить настройки для заставки XNA?
- 17. Что такое хороший способ сохранить 2D-карту
- 18. MS Word Сохранить историю
- 19. Хороший способ использования socket.io с кластером в многоядерном сервере?
- 20. Заказ сообщений в socket.io
- 21. log4javascript - получать историю сообщений программно?
- 22. Сохранить историю баз данных
- 23. Есть ли способ сохранить push-уведомления?
- 24. Это хороший способ сохранить ресурсы для интернационализации в .Net
- 25. Есть ли хороший способ использования QuickCheck Happstack.State?
- 26. Есть ли хороший способ минимизировать javascript ES2016?
- 27. есть хороший способ объединить манипуляторы потока?
- 28. Есть ли хороший способ проверить код jQuery?
- 29. Есть ли хороший способ скопировать виджет Gtk?
- 30. Есть ли хороший способ сократить этот код?
Таким образом, это вызовет слишком много накладных расходов, если я попытаюсь сохранить «chat-object» в базу данных (т. Е. Mongodb) каждый раз при создании нового сообщения? – Julian
«слишком много» зависит от того, сколько нагрузки будет испытывать сервер. Если это проблема, это может помочь просмотреть другие варианты. Тем не менее, сохранение его в базе данных каждый раз может быть полезным, поскольку оно снижает риск потери сообщений. – Adam