УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы
Какие же у меня кривые руки (как минимум в плане сетевого программирования). С этим определенно надо что-то делать. С вебсокетами продолжается какая-то непонятная муть, а именно иногда клиенты не-вебсокет-соединения получают какую-то лажу вначале ответа, видимо лажа связана с вебсокетами. Также не получается сделать нормальный реконнект, вечно накапливаются зомби-соединения (хз, я и так делаю ping-pong, что ли на сервере вычищать по прошествии времени если пинг не получен). С другой стороны теперь вот с beanstalk какая-то проблема, получается что он не по протоколу шлет фигню всякую. Короче, как перестать жить и начать нормально программировать сетевые программы? Очень заебывает.
#ECMMBA / @kb / 3767 дней назад

бери ноджс и не выебывайся
#ECMMBA/JWI / @krkm / 3767 дней назад
небось на каких-то хуяцкелях там выёбываешь что-то?
#ECMMBA/33O / @anonymous / 3767 дней назад
Нанимаешь программиста, и он тебе всё программирует нормально.
#ECMMBA/1AW / @l29ah / 3767 дней назад
@anonymous та какая разница
#ECMMBA/JK2 / @kb --> #ECMMBA/33O / 3767 дней назад
@l29ah Так я за ним и переделываю
#ECMMBA/C1Z / @kb --> #ECMMBA/1AW / 3767 дней назад
@krkm Взял
#ECMMBA/Y83 / @kb --> #ECMMBA/JWI / 3767 дней назад
бля хуй его знает сорь у меня всё норм. Но тоже были проблемки. Бери одну конкретную проблему и еби её до упора. Фундамент должен быть идеален, иначе говно будет. Отладочная печать в помощь, ну и в х-е вроде есть хуита наподобие "взять такой-то пакет с либой, склонировать локально, и брать оттуда код для компиляции бинарников, требующих либу". И устраивай изнасилование либе.
#ECMMBA/EK1 / @gds / 3767 дней назад
найми пиздякомку которая тебе на жабе с нетти ебух-ебух и в продакшон
#ECMMBA/7PV / @stiletto / 3767 дней назад
@gds Да, примерно этим и занимаюсь. Еще tcpdump/tcpflow всякие в помощь. И они даже говорят, что я вроде бы прав (а beanstalk -- хуй), но посмотрим еще что скажут авторы. Кстати, вопрос к тебе по поводу вебсокетов: ты с ними из js работал? Хочу узнать вещи типа: 1. как правильно держать соединение (ping-pong?) 2. как следить за зомби-клиентами (и надо ли) 3. как реагировать на прочие ошибки Ну, короче, все в этом стиле.
#ECMMBA/AQ9 / @kb --> #ECMMBA/EK1 / 3767 дней назад
@stiletto Эт я уже. Теперь баги чинить надо.
#ECMMBA/YGH / @kb --> #ECMMBA/7PV / 3767 дней назад
@kb придумай себе таймаут. если в течение этого таймаута никакого обмена не было - пошли пинг-фрейм. если все ещё тишина - закрой соединение
#ECMMBA/2QH / @stiletto --> #ECMMBA/AQ9 / 3767 дней назад
@kb а, бля, про жс не заметил. из клиентского жс тебе не дадут доступа к пинг-понгу, им должны браузер и сервер заниматься. предыдущий комментарий был про с точки зрения сервера.
#ECMMBA/1L9 / @stiletto --> #ECMMBA/AQ9 / 3767 дней назад
@stiletto Ну, у меня жс делает пинг-понг периодически и реконнектится если что не так. Просто на сервере когда я делаю broadcast -- удаляю отвалившихся по эксепшну, почему-то этого мало и клиенты все равно скапливаются. Короче буду дебажить.
#ECMMBA/AGC / @kb --> #ECMMBA/2QH / 3767 дней назад
@kb из жс работал, но давно, могу напиздеть ненароком. 1. ping/pong из жс только через data frames, вебсокетовые пингпонги недоступны. Имей тредик (через setTimeout или как там его), который срёт в вебсокет какими-то данными. Сейчас я бы сделал что-то типа очереди сообщений от посылателей данных (в том числе от пингалки) к коду, отвечающему за вебсокет-объект (в этом же коде реконнекты). Типа эрланг)))))0000 2. зомби-клиенты -- не понял, видимо. Если есть пинг от клиента -- он жив. Нет пинга в течение 2*ping_period -- закрывай соединение, он реконнектнется по нужде. 3. ставить колобœк на ошибки, закрывать соединение, писать в отладочную сосноль, переоткрывать соединение через какое-то время. Если что-то ваще неожиданное -- писать на страницу куда-нибудь. У меня вообще была такая штука: обильные выделения отладочных сообщений в сосноль и в память, и кнопочка "сообщить об ошибке", которая слала в том числе все отладочные сообщения из памяти. Незаменимо. Но ты с серверной частью хорошо разберись сначала, вплоть до тестов клиентами, которые точно шлют что надо, чтобы разделить проблему на 1. ошибки в сервере, 2. ошибки из-за браузеров/жс/сети.
#ECMMBA/0LG / @gds --> #ECMMBA/AQ9 / 3767 дней назад
@kb на сервере лови ошибки по каждому сокету, а не броадкастом -- имей тредик на каждый вебсокет, и в нём пиши логику "живой ли сокет, или его убить надо", надёжнее и проще для отладки.
#ECMMBA/K1N / @gds --> #ECMMBA/AGC / 3767 дней назад
@gds Ну, бродкаст -- это функция такая в смысле, она по каждому проходится, делает send и ловит ошибку (в случае ошибки удаляет из списка). Удивительно мне то, что при этом все равно скапливается кучка клиентов, каким-то образом не имеющие ошибок (не удаляющиеся), а с другой стороны абсолютно несвязанная хрень получает вот эти ответы на совершенно не-ws-запросы. Короче, пока у меня мысль просто разнести ws- и не-ws- сервер в два отдельных процесса и слепить их через nginx, будет сильно легче разобраться кто неправ.
#ECMMBA/A8M / @kb --> #ECMMBA/K1N / 3767 дней назад
@gds Да, вроде бы все так, как я и представлял (под "пингами" имелись в виду просто сообщения "ping", а не вебсокетовые). Короче, буду как обычно, упрощать/дебажить/логировать. Хуле остается-то.
#ECMMBA/RYJ / @kb --> #ECMMBA/0LG / 3767 дней назад
@kb > абсолютно несвязанная хрень получает вот эти ответы на совершенно не-ws-запросы у тебя пиздец в либе, делающей вебсокеты. Как я и говорил в каментах к предыдущим постам про них. Разберись с этим в первую очередь.
#ECMMBA/9C9 / @gds --> #ECMMBA/A8M / 3767 дней назад
у тебя приложение торчит в сеть или в реверспроксю?
#ECMMBA/43O / @stiletto / 3767 дней назад
а реверспрокся нормально умеет в upgrade?
#ECMMBA/NME / @stiletto / 3767 дней назад
а кипэлайв включен?
#ECMMBA/2BN / @stiletto / 3767 дней назад
я понимаю что это тупые вопросы, но просто как чеклист, который проверить и в дальнейшем не отвлекаться
#ECMMBA/GM0 / @stiletto / 3767 дней назад
@stiletto В сеть
#ECMMBA/NY6 / @kb --> #ECMMBA/43O / 3767 дней назад
#ECMMBA/K8V / @kb --> #ECMMBA/2BN / 3767 дней назад
@stiletto Та да, спасибо, буду дебажить, короче, в крайнем случае отдельным приложением маленьким буду воспроизводить и ебать авторов библиотек.
#ECMMBA/11G / @kb --> #ECMMBA/GM0 / 3767 дней назад
@gds Пожалуй, так и есть.
#ECMMBA/B44 / @kb --> #ECMMBA/9C9 / 3767 дней назад

как перестать жить и начать нормально программировать сетевые программы

ебать у тебя проблемы первого мира

#ECMMBA/5T7 / @goren / 3767 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.