Я провел всю прошлую ночь в поисках бесплатного элемента управления веб-чатом AspNet, который я мог бы просто перетащить на свой веб-сайт. Ну, поиск был тщетным, так как я не смог найти элемент управления, который соответствовал бы моим потребностям, т. Е. Список пользователей, чат 1 к 1, возможность выгнать пользователей.
В конце концов я решил создать свой собственный контроль с нуля. Хотя он хорошо работает на моей машине, я обеспокоен тем, что он может быть немного грубым и непрактичным в среде общего хостинга.
В основном это то, что я сделал:
- Создана база данных sql для хранения сообщений чата.
- Написал хранимые процедуры и включил инструкцию, которая очищает старые сообщения
Тогда «сырая» часть:
- Перетащил панель обновления и таймер на мою страницу
- Перетянул привязку данных Repeater в таблицу сообщений чата на панели обновлений
- Перетянул еще одну панель обновления и внутри нее поместил текстовое поле и кнопку
- Настроен таймер управления на каждые 5 секунд.
.. а потом я заставил все это работать так
В событии с отметкой таймера я «обновил» отображаемые сообщения, вызвав Databind () на моем репитере, т.е.
protected void Timer1_Tick(object sender, EventArgs e)
{
MyRepeater.DataBind();
}
Тогда в моем событии нажатия кнопки отправки
protected void btnSend_Click(object sender, EventArgs e)
{
MyDataLayer.InsertMessage(Message, Sender, CurrTime);
}
Ну, это хорошо работает на моей машине, и я получил другие функции (список пользователей, исключение пользователей ...), просто создав больше таблиц.
Но, как я уже сказал, мне это кажется немного грубым. поэтому мне нужно профессиональное мнение. Должен ли я работать с этим или попробовать другой подход?