1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/6_jia-librws

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

librws - Маленькая, кросс-платформенная библиотека-клиент для работы с WebSocket

Платформа Версия Лицензия Статус сборки Статус сборки

Возможности

  • Отсутствие дополнительных зависимостей
  • Однофайловый интерфейс библиотеки librws.h с публичными методами
  • Безопасность для многопоточной работы
  • Логика отправки/получения данных в фоновом потоке### Установка с помощью CocoaPods

Podfile

pod 'librws'

Пример

Создание и хранение объекта websocket

   // Определение переменной или поля для хэндла сокета
   rws_socket _socket = NULL;
   . . . . . . . . . . . .
   // Создание объекта сокета
   _socket = rws_socket_create();

Установка URL соединения websocket

// Объединённый URL: "ws://echo.websocket.org:80/"
rws_socket_set_scheme(_socket, "ws");
rws_socket_set_host(_socket, "echo.websocket.org");
rws_socket_set_port(_socket, 80);
rws_socket_set_path(_socket, "/");

Установка callback-функций для websocket

Предупреждение: rws_socket_set_on_disconnected обязательно

// Основные callback-функции
// callback, вызываемый при отключении сокета с/без ошибки
static void on_socket_disconnected(rws_socket socket) {
   // обработка ошибки
   rws_error error = rws_socket_get_error(socket);
   if (error) { 
     printf("\nSocket disconnect with code, error: %i, %s", rws_error_get_code(error), rws_error_get_description(error)); 
   }
   // забываем об этом объекте сокета, из-за последующего отключения
   _socket = NULL;
 }
 // callback, вызываемый при подключении сокета и завершении рукопожатия
 static void on_socket_connected(rws_socket socket) {
   printf("\nSocket connected");
 }
 // callback, вызываемый при получении текста сокетом
 static void on_socket_received_text(rws_socket socket, const char * text, const unsigned int length) {
   printf("\nSocket text: %s", text);
 }
 . . . . . . . . . . . . . . . . . .
 // Установка callback-функций сокета
 rws_socket_set_on_disconnected(_socket, &on_socket_disconnected); // обязательно
 rws_socket_set_on_connected(_socket, &on_socket_connected);
 rws_socket_set_on_received_text(_socket, &on_socket_received_text);

Подключение

rws_socket_connect(_socket);

Отправка сообщения в websocket

const char * example_text =
  "{\"version\":\"1.";
```0\",\"supportedConnectionTypes\":[\"websocket\"],\"minimumVersion\":\"1.0\",\"channel\":\"/meta/handshake\"}";
 rws_socket_send_text(_socket, example_text);

Отключение или удаление объекта websocket

Так как сокет может быть подключен и нам нужно отправить сообщение об отключении, а не просто закрыть его, нужно подождать и затем удалить объект. Поэтому просто вызываем rws_socket_disconnect_and_release, это потокобезопасная функция, и забываем об этом объекте сокета.

rws_socket_disconnect_and_release(_socket);
_socket = NULL;

Лицензия

---------Лицензия MIT (MIT License)

Авторское право (c) 2014 - 2019 Oleh Kulykov info@resident.name

Данное соглашение разрешает бесплатно любому лицу, получившему копию этого программного обеспечения и связанных с ним документов («Программа»), работать с Программой без каких-либо ограничений, включая без ограничений, право использовать, копировать, изменять, объединять, публиковать, распространять, передавать по лицензии, продавать копии Программы, и разрешать лицам, которым Программа была предоставлена, делать то же самое, при условии соблюдения следующих условий:

Вышеуказанное уведомление об авторском праве и это уведомление о лицензии должны быть включены во все копии или значительные части Программы.

ПРОГРАМА ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОРГОВЛЕНИЯ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ И ДОЛЖНИКИ АВТОРСКОГО ПРАВА НЕ ДОЛЖНЫ БЫТЬ ОТВЕТСТВЕННЫМИ ЗА КАКИЕ-ЛИБО ПРЕТЕНДИРОВАНИЯ, УЩЕРБЫ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТИ, В ТОМ ЧИСЛЕ В СВЯЗИ С ДЕЛОМ ОБ ОБЯЗАТЕЛЬСТВЕ, ДЕЛЕ ОБ УЩЕРБЕ ИЛИ ДРУГИХ ДЕЛАХ, ВОЗНИКШИХ ИЗ, В СВЯЗИ С ИЛИ В СВЯЗИ С ПРОГРАММОЙ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЙСТВИЯМИ С ПРОГРАММОЙ.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

librws-маленький кроссплатформенный клиент C для WebSocket Развернуть Свернуть
C и 5 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/6_jia-librws.git
git@api.gitlife.ru:oschina-mirror/6_jia-librws.git
oschina-mirror
6_jia-librws
6_jia-librws
master