Робимо чат за допомогою Web Socket

Вступ

Я думаю, що багато веб-розробників ставлять собі питання про те, як передати користувачеві будь-яке повідомлення, нагадування. Раніше для цього потрібно було постійно відправляти запити до веб-сервера, але тепер з'явилася така зручна технологія, як Web Socket.

У цій статті хочу показати, як можна написати простий чат на ASP.NET MVC 4 за допомогою Web Socket.

Приступаємо

Для початку нам потрібно створити порожній проект ASP.NET MVC 4

робимо

І додати до нього універсальний обробник ChatHandler

Socket

Тепер змінимо код методу ProcessRequest нашого оброблювача на

Додамо 2 змінні

І напишемо основний метод нашого чату

Тепер наш обробник має виглядати так:

Тепер ми можемо написати просту html сторінку, яка міститиме Web Socket, що підключається до нашого оброблювача

Тепер ми можемо запустити наш чат, але тільки властивість context.IsWebSocketRequest буде завжди false. Це відбувається через те, що Visual Studio за замовчуванням налагодження використовує IIS Express, який не підтримує Web Socket. Для того, щоб нарешті погратися з сокетами, нам необхідно встановити IIS і налаштувати Visual Studio для роботи з ним за замовчуванням.

Для цього виконаємо кілька кроків:

Крок 1. Встановлюємо IIS. Для цього перейдемо в Панель керування -> Програми -> Увімкнення та вимкнення компонентів Windows Там знайдемо служби IIS і поставимо на них галку

допомогою

Крок 2. Налаштовуємо IIS. За замовчуванням компонент Web Socket у IIS вимкнено. Щоб його увімкнути в компонентах Windows пройдемо шляхом Служби IIS -> Служби Інтернету -> Компоненти розробки програм. тамзнайдемо Протокол WebSocket і поставимо на ньому галку

Socket

Крок 3. Налаштовуємо Visual Studio. Щоб змусити VS використовувати IIS для налагодження, нам необхідно зайти у властивості проекту -> Інтернет і там віджати галку Використовувати IIS Express. (Якщо галка у вас не активна, перезапустіть студію)

робимо

Завершення

Тепер ми можемо сміливо запустити наш проект та привітати самого себе!

Socket

Завантажити файл проекту можна тут.

А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»