Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!
8 000 ₽

Библиотека прокси между websocket и TCP

проект завершен


Результаты работы

Просмотр приложений доступен только зарегистрированным пользователям.

Отзыв заказчика о сотрудничестве с Михаилом Сырцовым

Качество
Профессионализм
Стоимость
Контактность
Сроки

Очень вежливый человек, работу выполнил на все сто, помог мне разобраться с подключением собранной библиотеки к моему языку(хотя он жутко специфический и был ему не знаком). Я очень доволен проделанной им работой! Рекомендую этого фрилансера для работ на С/С++, профессионал!

Отзыв фрилансера о сотрудничестве с Дмитрием Кислициным

Оплата
Постановка задачи
Четкость требований
Контактность

Адекватный заказчик, довольно быстро отвечал, не ограничивал в плане выбора технологий. Также пошёл на встречу и продлил время выполнения, когда не получалось сделать часть программы и пришлось переносить всё на другую библиотеку.

Михаил Сырцов | Сейф Сейф


  1.  7 дней 20 000 ₽
    600    6  0   1

    Добрый день.
    Готов выполнить проект. Обращайтесь skype, telegram.

  2.  1 день 8 000 ₽
    126  

    Готов выполнить данный проект. Есть большой опыт разработки различного рода ПО на С/С++.

  3.  Победившая ставка 3 дня 8 000 ₽
    279    1  0

    Здравствуйте.
    Для создания библиотеки буду использовать Си, что позволить уменьшить размер dll и увеличить скорость работы.
    Для сборки буду использовать CMake, из-за лёгкой встраиваемости.
    Для работы с веб-сокетами буду использовать Win32 API, без заголовков, доступных только в win8+.

    Предлагаю изменить интерфейс библиотеки:
    websock_open(, ) - для подключения к веб-сокету и создания прокси-сервера.
    websock_close() - для закрытия соединения и очистки памяти.
    websock_status() - возвращает 1 или 0, состояние сервера.
    websock_error() - возвращает строку, с последней ошибкой в работе dll.
    Готов выполнить проект в течении 2-3 дней.

  • Anton Kravtsov
    26 июня в 19:03 |

    3) Отправлять все входящие websocket пакеты на TCP, отправлять все входящие TCP пакеты на websocket - т.е. служить прокси мостом между TCP и websocket соединениями. 

    Я так понимаю, пакеты надо пересылать как есть? Т.е. считать их бинарными данным (raw data), без формата?

    Так же мне нужны будут исходники - возможно сам решу модифицировать в будущем.

    Реализация на C++ (boost + asio/beast) подойдёт?

  • Дмитрий Кислицин — заказчик проекта
    26 июня в 22:46 |

    Да, данные пересылать сырыми. Единственное - чтобы я их потом мог распарсить.


    Да реализация на С++ подойдет. Модули любые по вашему желанию.


    Если вкратце - мне нужна надежная либа для работы с веб сокетом, т.к. на моем любимом ЯП (древнем как говно мамонта) таких модулей нет...


    Хотелось бы в живую обсудить все. Мой телефон: +7 (920) 752-72-96, звонить можно в любое время (ночью не желательно 😄).

  • Дмитрий Кислицин — заказчик проекта
    26 июня в 22:54 |

    Либо, если получится, либа могла бы вобще передавать хэндл сокета. Реализация тогда была бы элементарная, но тут вопрос в том - смогу ли я получить в своем ЯП такой сокет как обьект и смогу ли с ним полноценно работать - в этом не уверен. Но было бы красиво и просто...

  • Anton Kravtsov
    28 июня в 12:39 |

    ... либа могла бы вобще передавать хэндл сокета. ... смогу ли я получить в своем ЯП такой сокет как обьект и смогу ли с ним полноценно работать - в этом не уверен.

    Если у вас стоит задача передавать/принимать данные по WebSocket-протоколу из вашего приложения, т.е. фактически у вас будет WebSocket-клиент, то можно обойтись и без TCP-proxy.

    Правда, handle будет "нестандартным" и с ним можно будет работать только через самодельную библиотеку.

    API можно сделать, например, таким:

    <handle_type> websock_open(<адрес строка>, <порт dword>)
    <status> websock_send(<handle_type>, <byte array>, <length>)
    <status> websock_receive(<handle_type>, ... )
    <status> websock_close(<handle_type>)
    <status> websock_status(<handle_type>)

    Из какого языка вы собираетесь обращаться к библиотеке?

    В задании упоминается BlitzMax - это Blitz BASIC или https://blitzmax.org или что-то иное?

  • Дмитрий Кислицин — заказчик проекта
    28 июня в 13:38 |

    Если у вас стоит задача передавать/принимать данные по WebSocket-протоколу из вашего приложения

    Вы правильно поняли.

    <status> websock_receive(<handle_type>, ... )

    ... тут я свой буфер для приема указываю? Не очень понял...

    Но в общем апи вполне продуманное. Я бы и сам хтел отказаться от лишней прослойки в виде TCP - просто подумал - это будет самое простое решение.

    или https://blitzmax.org

    Скорее второй вариант. А вообще этот ЯП давно умер, хорошей альтернативы ему я так и не нашел. ООП ЯП для компиляции использует старый MinGW определенной версии, с новыми конфликтует.


    Пытался сегодня сам скомпилить на eclipse библиотеку от безысходности...

    Поставил свежий MinGW переписал переменные среды, поставил boost, поставил websocketpp, запоролся на установке openssl - фиг знает как ее настраивать, компилятор ругался на отсутствие заголовков...


    Вы сможете собрать такую библиотеку? Может зарегаетесь в проекте у меня как исполнитель? 8к Вас устроит?

  • Anton Kravtsov
    28 июня в 23:22 |

    ... этот ЯП давно умер ...

    Признаться, раньше об этом языке вообще не слышал 🙂

    И судя по https://github.com/bmx-ng/bmx-ng/releases , он ещё вполне себе жив 🙂

     Может зарегаетесь в проекте у меня как исполнитель? 

    У меня пока нет времени, чтоб заняться вашим проектом.

    Я так понимаю, у вас есть навыки по программированию, т.е. вы вполне можете попробовать решить задачу самостоятельно. При этом могут пригодиться ресурсы типа stackoverflow и подобные, где на внятный вопрос могут дать годный ответ.

    У BlitzMax, кстати, есть живое community , где, наверное, тоже могут подсказать, в каком направлении копать 🙂

    Если уж совсем застрянете, то размещайте здесь задачу с конкретной формулировкой - наверняка найдутся исполнители, которые смогут вам помочь.

  • Дмитрий Кислицин — заказчик проекта
    28 июня в 13:42 |

    Если вы на счет calling covenition - то вроде BlitzMax юзает __stdcall , но точно не уверен. Могу тестовую прогу собрать - проверите у себя вызов и передачу параметров.