Roman
Этот вопрос тебе наверняка не известен.
Зачем тебе именно _определенная_ архитектура?
Дима
Это твой домысел, и вообще, не очень вежливо.
— Двач, ем с ножа, постоянно порезан рот, как лечить? — Просто не ешь с ножа — НЕ УЧИТЕ МЕНЯ ЖИТЬ, Я СПРОСИЛ КОНКРЕТНЫЙ ВОПРОС
Anonymous
Когда тебе говорят, что твоё решение неоптимальное, ты говоришь, что ты не про это спрашивал
Эу... Так ты не в курсе мой задачи. Я её хочу сам решить. А сюда пришёл с конкретным, узким вопросом.
Anonymous
— Двач, ем с ножа, постоянно порезан рот, как лечить? — Просто не ешь с ножа — НЕ УЧИТЕ МЕНЯ ЖИТЬ, Я СПРОСИЛ КОНКРЕТНЫЙ ВОПРОС
Не, это явно не тот случай. Я спросил совета по ножевому бою, а мне советуют кунг-фу. =)
Anonymous
Короче, перебои со связью неактуальны. Нужно реализовать максимально однородную, прозрачную и простую событийную систему на фронте и на бэкенде. Нафиг мне рест, если эта абстракция будет стоять между одинаковыми сущностями по обе стороны от неё. Эта прослойка здесь будет только создавать оверхэд.
Дима
Правильно, а вебсокеты — не оверхед))
Anonymous
Перебоев не будет, т.к. клиент и сервер — одна машина.
Дима
Молчу-молчу
Дима
Короче, ты делаешь микросервисы
Дима
?
Anonymous
Правильно, а вебсокеты — не оверхед))
Нет. Мне всё равно нужно будет реализовать медиатор. Если событие будет попадать ещё и в сокет инстанс, архитектура не так усложнится, как это было бы в случае с рестом.
Anonymous
Короче, ты делаешь микросервисы
Нет. Там будет взаимодействие с аппаратной частью машины.
Дима
...
Loyd
Я весь тред не читал
Loyd
Но откуда у http преимущества в плане сорханности перед ws?
Loyd
Если сохранность обоих регулируется tcp
Алексей
.. a TCP не гарантирует доставку сообщений …
Arseniy
udp не гарантирует
Loyd
tcp как раз гарантирует
Loyd
В отличие от датаграм
Anonymous
А какова необходимость над этим париться при доставке сообщений на localhost и обратно?
Arseniy
Перепутал наверное
Arseniy
Но это ключевое отличие udp vs tcp
Arseniy
Есть ещё вриант tcp over udp
Arseniy
Гугл что-то такое делали
Loyd
Неважно, localhost или нет, я не понял доводы людей, который топят в треде за лонгполинг и какую-то там доволнительную сохранность (щито?)
Arseniy
Протокол UDP но есть проверки
Anonymous
Я теперь вообще запутался. Никто не привёл ни пруфов, ни хинтов, куда мне копать. =)
Алексей
tcp гарантирует доставку пакетов и то при условии наличия соединения, а не сообщения.. если я отправил сообщения 10-и ресипиентам - а один из них отпал - он это сообщение не получит и все. Даже никогда не узнает что его должен был получить
Loyd
Ну да, он же отпал.
Anonymous
Ну и не страшно.
Алексей
Ну да, он же отпал.
так все, потеряно сообщение.. вы выключите базу данных из своего вооброжения - мы про чистый TCP
Anonymous
Если клиент стейтлес, то логично, что при старте нового соединения, он запрашивает своё состояние у "источника правды".
Loyd
так все, потеряно сообщение.. вы выключите базу данных из своего вооброжения - мы про чистый TCP
Не пойму, к чему вы придираетесь? Я апеллировал к выссказываениям выше, что лонгполлинг даёт больше сохранности, чем вебсокеты.
Loyd
Ок =)
Loyd
Если клиент стейтлес, то логично, что при старте нового соединения, он запрашивает своё состояние у "источника правды".
Если клиент стейтлес, то тут и tcp не нужны, если можно использовать udp (ибо сам udp будет содержать состояние)
Anonymous
У меня мало понимания о том, что там происходит на низком уровне. Суть в том, что использование сокетов — вовсе не выстрел себе в ногу?
Loyd
А что непонятного-то? Если на клиенте нет стейта, то весь стейт в сообщении и => нет смысла контролировать доставку
Loyd
Соб-но, в играх потому udp и используют чаще всего
Anonymous
Ну, в общем, да.
Anonymous
Так. А с вебсокетами, всё-таки, кто-нибудь здесь работал? =)
Loyd
Все, наверное, работали.
Vladimir
> @bigslycat Короче, перебои со связью неактуальны. ахахаха
Мерль
Но как раз в играх стейт есть и на клиенте и на сервере, и udp там применяется из-за скорости и низкой ценности каждого кадра синхронизации состояний Если речь идёт скажем о сообщениях на форуме, то udp применять нельзя
Vladimir
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
Anonymous
> @bigslycat Короче, перебои со связью неактуальны. ахахаха
Не, ну а какие перебои могут быть на локалхосте?
Loyd
Да на локалхосте никаких.
Anonymous
Ну и я о том ж.
Vladimir
Ну про это никто не говорил
Loyd
Перебои сами по себе не страшны. Страшно, если контрольная сумма сойдётся при испорченных данных
Vladimir
Верно
Vladimir
Страшно применить апдейты не в том порядке
Vladimir
В ситуации когда локалхост, неважна надежность, порядок и т д - да делай что хочешь, как хочешь
Vladimir
Добрый день. Довольно такой дуратский вопрос, но как получить размер файла из POST запроса? Отправляю multipart. Получаю content_type, но размер там немного больше чем размер файла. Поэтому и хочется узнать как получить именно размер файла
Vladimir
Либо теряются данные, либо там учитывается размер всего http заголовка и прочего
Loyd
Страшно применить апдейты не в том порядке
Ну, тут как раз сильно маловероятно испорченность. Это прям повести должно конкретно, чтобы у двух пакетов симметрично биты поменялись.
Loyd
И при этом контрольные суммы сошлись бы
Loyd
биты порядка*
Vladimir
Имеется в вижу не испорченность пакетов, а испорченость результата, расчитаного на клиенте
Anonymous
Так вот, мой вопрос, с которого всё это началось, заключался в следующем: вот для HTTP придумали REST, RPC, SOAP... Потом JSON-API, RPC-JSON и т.д. И я хотел узнать, не придумали ли что-нибуть такое для вебсокетов? Не хочу писать велик. Особенно, не имея опыта. Хочу ознакомиться с соглашениями, если таковые уже есть.
Vladimir
Так задача какая?
Loyd
А что ты хочешь-то?
Vladimir
RPC по вебсокетам? это бессмысленно
Loyd
Ну почему-же.
Vladimir
Ну почему-же.
Есть теоритеский профит от мультиплексирования
Vladimir
Но и только
Loyd
Что в данном контексте мультиплексирование?
Loyd
Я знаю только одно мультиплексирование — select/poll.
Vladimir
Логических каналов на tcp сокеты
Loyd
Аа
Vladimir
т е нет head of line блокировки
Anonymous
Ну, что такое RPC? Это определённое соглашение, если в общем? Протокол над HTTP? Верно? Возможно, что-то более высокоуровневое есть и над веб-сокетами.
Vladimir
RPC это когда ты посылаешь запрос и получаешь ответ
Anonymous
Не обязательно это похоже на перечисленные мною вещи. Скорей всего, не похоже, вовсе.
Paul
Использую websocket'ы в продакшене уже 5 лет на разных проектах. Написаны обертки на все случаи жизни. Работает как часы, плюс онлайн обновления, нотификации и тд Ничего не течет. Возвращаться на http не хочется совсем
Anonymous
Хотя, я слышал, что есть рест овер сокетс.
Vladimir
Все можно, но просто это не НУЖНО
Vladimir
Можно и через webrtc сделать