В этой статье рассмотрим как создать Android клиент WebSocket.
Допустим, что мы уже создали проект в Android Studio. Первым делом откроем файл build.gradle(Module:app).
ВАЖНО, не забывайте разрешить приложению "выходить" в интернет. В файле AndroidManifest.xml пропишите это:
<uses-permission android:name="android.permission.INTERNET" />
И добавим в объект dependencies следующую строку:
compile 'com.squareup.okhttp3:okhttp:3.10.0'
Что мы сделали?
Мы добавили в Gradle, которая является системой сборки пакет okhttp, являющийся http-клиентом для Android.
Далее создадим наш класс. Я его назову для начала WebSocketClass. Не забываем его унаследовать от WebSocketListener.
Его содержимое будет следующим:
public class WebSocketGolos extends WebSocketListener {
@Override
public void onOpen(WebSocket webSocket, Response response) {
webSocket.send("Hello");
}
@Override
public void onMessage(WebSocket webSocket, String text)
{
Log.d("WS", text);
System.out.print(text);
}
}
Всё просто. Метод onOpen принимает аргументы webSocket и Response и срабатывает при открытии соединения.
А onMessage при получении сообщения.
Далее перейдём в наш MainActivity, он должен создаться вместе с проектом.
И далее будем работать в методе onCreate, потому что мы не будем сейчас заморачиваться. И будем открывать WebSocket соединение при открытии приложения.
Создадим клиент
OkHttpClient client = new OkHttpClient.Builder().build();
Создадим запрос к нашему сокету
Request request = new Request.Builder()
.url("ws://chemnote.ru:8881")
.build();
Создадим экземпляр нашего класса:
WebSocketClass wsc = new WebSocketClass();
Установим новое WebSocket соеденение:
WebSocket ws = client.newWebSocket(request, wsc);
Укажем, что при отключении клиента ресурсы буду освобождены. Также запретим создавать новые клиенты при открытии соединения.
client.dispatcher().executorService().shutdown();
WebSocket-сервер настроен на Tornado, его установка была описана здесь.
Листинг WebSocketClass и MainActivity
Материал подготовлен автором @zheev
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
gildar, max-max, svetlanaaa, phoenix, galina1, tristamoff, vadbars, olga-olga, semasping, arystarch, vika-teplo, amelina.elena, del137, kertar, ifingramota, oksi-m, zhenek, magformers, kr-alexey
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас: