
Слава
26.01.2018
12:23:38

Leonid
26.01.2018
12:23:56
"Вот например бравзеры с html это REST. Вот так делайте и будет круто!" и ты им такой "А не пойти-ли тебе мил человек на..." и делаешь json-rpc по HTTP/WebSokets

Andrei
26.01.2018
12:31:20
о, WebSockets же. всё время про них забываю

Vyacheslav
26.01.2018
12:34:19

Google

Leonid
26.01.2018
12:34:38

Vyacheslav
26.01.2018
12:35:07
ну, например, как ты узнаешь что запрос не дошел?

Leonid
26.01.2018
12:36:02
точно так же

Vyacheslav
26.01.2018
12:36:22
точно так же?
в http у тебя есть нормальна семантика

Leonid
26.01.2018
12:36:53
а чего у меня нет HTTP в json-rpc поверх HTTP?

Vyacheslav
26.01.2018
12:36:58
на всех уровнях инфраструктуры она будет поддеживаться
json-rpc поверх http ради бога
нет претензий

Leonid
26.01.2018
12:37:33
на вебсокетах то точно так же - получил ответ, значит дошло

Alexander
26.01.2018
12:38:13
а с хттп2 разница вообще теряется

Leonid
26.01.2018
12:38:15
без двойного ack один хрен не можешь быть уверен что дошло

Google

Vyacheslav
26.01.2018
12:38:26

Leonid
26.01.2018
12:38:28
на любом протоколе
А если http дисконектнуло до получения ответа?

Denis
26.01.2018
12:38:48

Vyacheslav
26.01.2018
12:38:52
вернется ошибка

Leonid
26.01.2018
12:39:03
ну тут у тебя таймаутится
или дисконнектится

Denis
26.01.2018
12:39:18
а если ничего не вернуло?

Vyacheslav
26.01.2018
12:39:24
короче, не надо городить свои велосипеды вместо того, что нормально работает

Denis
26.01.2018
12:39:24
то хендлер отработал на сервере или нет?

Leonid
26.01.2018
12:39:57
у моего велосипеда 7 передач на передней и 3 на задней, он круче

Vyacheslav
26.01.2018
12:39:59
авторизация делается через одно место
лоад-балансинг — полная дичь

Alexander
26.01.2018
12:40:28
вот балансинг может быть, а что с авторизацией?

Leonid
26.01.2018
12:40:35
авторизация как и в остальном http
аутентификация и авторизация разные вещи кстати

Vyacheslav
26.01.2018
12:40:59
json-чиком с каждым запросом посылать
я кстати в курсе, спасибо

Alexander
26.01.2018
12:41:35
у вебсокетов и обычного хттп вообще нету разницы с т.ч. авторизации и аутенн

Google

Leonid
26.01.2018
12:41:49
Аутентифицировался при открытии коннекта и чо тебе еще надо?

Alexander
26.01.2018
12:41:52
оно работает ровно одними и теми же методами

Vyacheslav
26.01.2018
12:42:08

Alexander
26.01.2018
12:42:21
поскольку открытие коннекта это хттп запрос
в котором есть все хэдеры, параметры и и прочее

Leonid
26.01.2018
12:42:55
и какая разница, будешь слать в json или в заголовках? В конце концов сделай envelope (привет SOAP)

Vyacheslav
26.01.2018
12:43:36
безусловно, а потом правда нужно еще поддерживать актуальность этой авторизации на сервере
коннешкн то stateful
я уже молчу, что начать надо с того, что не вебсокеты wss надо использовать

Leonid
26.01.2018
12:45:34
А какие сложности то? Всё точно так-же. И не делай stateful application протокол поверх stateful transport протокола

Vyacheslav
26.01.2018
12:46:12
и тогда зачем нам нужен этот websocket?

Leonid
26.01.2018
12:46:31
он проще чем http2

Vyacheslav
26.01.2018
12:46:41
правда?
чем?

Leonid
26.01.2018
12:46:52
да. либ под http2 нет
я под вебсокеты то на питоне вменяемой либы не нашел

Alexander
26.01.2018
12:47:10
количеством страниц в спецификации

Leonid
26.01.2018
12:47:17

Alexander
26.01.2018
12:47:23
и как результат количестом боблиотек

Google

Vyacheslav
26.01.2018
12:47:26
вроде у http2 без server push все понятно
с библиотеками вроде тоже не сталкивался

Alexander
26.01.2018
12:47:41
в светлом будущем конечно http2 строго круче хтте

Vyacheslav
26.01.2018
12:47:44
в крайнем случае поставьте себя за nginx

Alexander
26.01.2018
12:47:49
опс вебсокетов

Leonid
26.01.2018
12:47:53
а мне нужен server push

Alexander
26.01.2018
12:48:23
но мы живём не в светлом будущем

Vyacheslav
26.01.2018
12:48:37
чет мне кажется, если нужен то эти проблема вебсокетами тоже не решить

Leonid
26.01.2018
12:48:53
оповещать

Admin
ERROR: S client not available

Alexander
26.01.2018
12:49:01
кстати, есть какие нибудь сервера в Haskell которые нормально полноценно поддерживают http2 позволяя использовать его фичи?

Leonid
26.01.2018
12:49:26
вроде в warp что-то накостылили, но насколько я знаю не очень

Vyacheslav
26.01.2018
12:49:29
оповещать
поэтому нужно просто сделать API HTTP, реалтайм — websocket/longpoll

Leonid
26.01.2018
12:49:29
и не всё
я и делаю два апи
один для туповатых скриптов, второй для гуёв

Vyacheslav
26.01.2018
12:49:57
кстати так и не понимаю чем например лучше websocket для подписок, чем нормально сделанный longpoll + keep-alive

Alexander
26.01.2018
12:50:07
не вижу ни одного бонуса long poll по сравнению с websocket

Vyacheslav
26.01.2018
12:50:13
проще балансировать

Google

Vyacheslav
26.01.2018
12:50:15
в разы

Leonid
26.01.2018
12:50:18
и знаете что? Без RESTфульных урлов можно обойтись одним и тем-же кодом

Alexander
26.01.2018
12:50:20
чем?
по середине коммуникации на другой хостинг пошлёшь?

Vyacheslav
26.01.2018
12:50:43
а как будете перекидывать коннекшены с сервера на сервер, если их стало там слишком много?

Leonid
26.01.2018
12:50:45
и вообще, не у всех тут вебскейл размером с гугла
дисконнектишь нахрен и всё

Vyacheslav
26.01.2018
12:51:11
удобно конечно

Leonid
26.01.2018
12:51:18
в сетевых делах клиент должен быть готов к дисконнекту

Vyacheslav
26.01.2018
12:51:25
надо только понять что пора дисконнектить vs round robin nginx + longpoll
и семаника request/response строго проще, чем у вебсокетов (где судя по большинству примерно просто городя свою request/response семантику поверх стэйтфул соединения)

Alexander
26.01.2018
12:52:29
если я правильно понимаю то Лонг пол это сервер не закрывает соединение и не говорит что сеанс завершён пока не захочет, так?

Vyacheslav
26.01.2018
12:52:44
обычно там лимит, например 20 секунд

Alexander
26.01.2018
12:52:48
и соответственно клиент и сервер по нему могут досылать данные?

Andrei
26.01.2018
12:52:51

Vyacheslav
26.01.2018
12:53:00
ну короче, непонятно просто стоит ли оно того

Leonid
26.01.2018
12:54:50
В общем я в основном то против REST с параметрами в урлах. и CRUD через HTTP методы.
/me в принципе доволен API у dropbox
не json-rpc, ибо метод в урле. но так даже лучше

Слава
26.01.2018
12:58:56
REST появился потому, что господа вебные-динамические на PHP, Python, Ruby и прочем мозге рака не осилили написать нормальные генераторы прокси по WSDL

sherzod
26.01.2018
12:59:06
Подскажите, таплы это синтаксический сахар? Над чем?

Слава
26.01.2018
12:59:24
А сейчас они изобретают Swagger