Хранение переменных на стороне сервера SignalR

Мне было интересно, как я могу хранить переменные на стороне сервера, которые можно запускать для подключенных клиентов при вызове?

Я использую параллельный словарь, чтобы отслеживать GUID соединений, и мне было интересно, могу ли я хранить строки или другие типы данных на сервере, например, последние 10 сообщений, поэтому, когда происходит новое соединение, клиент получает последние 10 сообщений, даже если они где не было подключено заранее.

Я мог бы видеть много применений для этого, но не вижу многого в этом, это не одобряется? Или плохая практика?. Я вижу, что хранение огромных строк на стороне сервера может вызвать множество проблем. Но так ли уж плохо то, что я предлагаю?


person user685590    schedule 30.07.2012    source источник


Ответы (1)


Нет, это совсем не осуждается. JabbR, флагманское приложение для тестирования SignalR, представляет собой систему чата, очень похожую на IRC, хранит «комнаты», сообщения, имена пользователей/идентификационную информацию, и т.п.

Как хранить их, решать вам. JabbR использует ADO.NET Entity Framework для хранения данных в базе данных SQL. Очевидно, вы могли бы сделать то же самое или использовать RavenDB или хранилище таблиц Azure или что-то еще.

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

Я настоятельно рекомендую ознакомиться с исходным кодом JabbR, который доступен здесь на GitHub, чтобы лучше понять, как это может работать на вас.

person Drew Marsh    schedule 30.07.2012