Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

И еще про вебсокеты

Единственной более-менее приличной библиотекой вебсокетов, что я нашел, оказалась вот эта. Для сравнения с libwebsockets, советую заглянуть, какую там предлагают накатать простыню кода просто для того, чтобы "завести" пример-эхо. Здесь же это — четыре десятка строк! Вот:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <ws.h>

void onopen(int fd)
{
        char *cli;
        cli = ws_getaddress(fd);
        printf("Connection opened, client: %d | addr: %s\n", fd, cli);
        free(cli);
}

void onclose(int fd)
{
        char *cli;
        cli = ws_getaddress(fd);
        printf("Connection closed, client: %d | addr: %s\n", fd, cli);
        free(cli);
}

void onmessage(int fd, const unsigned char *msg)
{
        char *cli;
        cli = ws_getaddress(fd);
        printf("I receive a message: %s, from: %s/%d\n", msg, cli, fd);
        ws_sendframe(fd, (char *)msg, true);
        free(cli);
}

int main()
{
        struct ws_events evs;
        evs.onopen    = &onopen;
        evs.onclose   = &onclose;
        evs.onmessage = &onmessage;
        ws_socket(&evs, 8080);

        return 0;
}

Единственный недостаток — отсутствие поддержки SSL, ну да ладно. Буду делать аутентификацию с использованием CGI, а сессионный ключ по вебсокету надо только один раз — при авторизации — передавать. Авось, студенты не взломают.

Библиотеку опакетил и выложил в своем репозитории: тарбол и ебилд.
С чувством выполненного долга пойду домой: обедать и спать. Надо еще полей ночью нащелкать для экстинкции и калькулятора экспозиции.
Tags: c, gentoo, websockets
Subscribe

  • Понаблюдал, блин!

    Опять у нас что-то с сетью поломали. Хотел было протестировать, как наша подвесная часть оптоволоконного спектрографа работает, а из дома связь с…

  • Релюшки на CAN-шине

    Закончил с прошивкой для новой железяки. Как "наследница" USB-CAN переходника, она умеет все то же самое + несколько специфичных вещей (опрос…

  • Дохлый SSD

    Писал уже о китайском SSD, сдохшем за полтора месяца работы. Вот он, герой: Сегодня у нас опять работы с оптоволоконным спектрографом на цейссе,…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments