librws.h
pod 'librws'
// Определение переменной или поля для хэндлера сокета
rws_socket _socket = NULL;
............
// Создание объекта сокета
_socket = rws_socket_create();
// Объединённый 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, "/");
Предупреждение: rws_socket_set_on_disconnected
обязательно
// Основные функции обратных вызовов
// Вызов активируется при отключении сокета с ошибками или без
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;
}
// Вызов активируется при успешном подключении и завершении рукопожатия
static void on_socket_connected(rws_socket socket) {
printf("\nSocket connected");
}
// Вызов активируется при получении текстового сообщения
static void on_socket_received_text(rws_socket socket, const char * text, const unsigned int length) {
printf("\nSocket text: %s", text);
}
..................
// Установка обратных вызовов сокета
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);
const char * example_text =
"{\"version\":\"1.0\",\"supportedConnectionTypes\":[\"websocket\"],\"minimumVersion\":\"1.0\",\"channel\":\"/meta/handshake\"}";
rws_socket_send_text(_socket, example_text);
С момента подключения сокета нам требуется послать сообщение об отключении, а не просто закрыть его лениво. Поэтому следует ждать завершения операции перед удалением объекта.
Поэтому используйте rws_socket_disconnect_and_release
, это безопасно для работы в нескольких потоках, и забудьте об этом объекте сокета.
rws_socket_disconnect_and_release(_socket);
_socket = NULL;
Лицензия MIT
Авторское право © 2014 - 2019 Oleh Kulykov info@resident.name
Разрешается бесплатно использовать, копировать, модифицировать, объединять, публиковать, распространять, предоставлять по лицензии и продавать копии данного программного обеспечения и связанных с ним документов («Программное обеспечение»), а также разрешается лицам, которым данное программное обеспечение было предоставлено, делать то же самое, при условии соблюдения следующих условий:
Указанное выше авторское право и данная лицензия должны присутствовать во всех копиях или значительных частях Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПОЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЮ ТОРГОВЛЕНИЯ, ДОСТОЙНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ, А ТАКЖЕ ПРЕДУПРЕЖДЕНИЕ ОТ АВТОРОВ И ВЛАДЕЛЬЦОВ АВТОРСКОГО ПРАВА ОТ ВСЕХ КОМПЕНСАЦИЙ, КОТОРЫЕ МОГУТ ВОЗНИКНУТЬ В РЕЗУЛЬТАТЕ ИЗ УПОТРЕБЛЕНИЯ, ИСПОЛЬЗОВАНИЯ ИЛИ ДРУГИХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПОЧЕНИЕМ.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )