
Arsen
30.04.2018
10:12:48
Ну да, это по сегодняшнему

Ruslan
30.04.2018
10:12:50
до $100
около $83

Vlad
30.04.2018
10:14:02
ладно, значит не 2.5 года, а больше)

Google

Vlad
30.04.2018
10:14:12

Ruslan
30.04.2018
10:16:37
больше чем 2 раза :)

Arsen
30.04.2018
10:18:13
Ну у меня ssd на 250 и hdd на 500 вместо дисковода и норм
Система и всё, требовательное к скорости на SSD
Остально на харду
Типа установщиков прог, доки, фильмы и т.д.

Антон
30.04.2018
10:51:04
У меня есть компонент, внутри которого кроме html еще используется другой компонент:
<paginator @updated="fetch" :data = "total"></paginator>
Переменная total у меня получается при ajax-запросе:
this.total = response.data.total;
Подскажите, пожалуйста, как в компоненте paginator получить обновленное значение total после axios-запроса?

Arsen
30.04.2018
10:54:39
Ну дык он так и должен работать
Когда меняешь значение this.total - новые данные должны передаться пагинатору в data

Vlad
30.04.2018
10:55:07

Andy
30.04.2018
10:56:22
ребята и девчонки, вот есть pusher с разными fallbacks для борьбы с дисконнектами, а есть чистый socket.io, который на ios девайсах отваливается через 3 минуты. wtf, как победить, как стать красаучиком

Антон
30.04.2018
10:56:30
в props он то обновляется. А вот переменная компонента paginator (которая приравнивается total из props) не обновляется

Google

Oleg
30.04.2018
10:57:00

Vlad
30.04.2018
10:57:14
?

Oleg
30.04.2018
10:57:18
:data.sync = "total"

Vlad
30.04.2018
10:57:23
Дата не реактивна

Антон
30.04.2018
10:58:06
я в created() приравнивал значение из total. Это видимо неправильно?

Vlad
30.04.2018
10:58:22
Created один раз вызывается

Egor Z
30.04.2018
10:58:30

Vlad
30.04.2018
10:59:37
Вот они проблемы из-за реактивности)

Ivan
30.04.2018
10:59:38

Vlad
30.04.2018
10:59:48
Слишком на неё рассчитывают

Andy
30.04.2018
11:00:37

Ivan
30.04.2018
11:00:49
ошибаешься, можно через devtool посмотреть, там frame не идет

Vlad
30.04.2018
11:01:12

Arsen
30.04.2018
11:01:32

Egor Z
30.04.2018
11:01:44

Vlad
30.04.2018
11:01:45
Сам вебсокет вообще бочка дубовая
Ничего не делает

Антон
30.04.2018
11:02:24
всем спасибо!

Andy
30.04.2018
11:02:49

Google

Alex
30.04.2018
11:03:03
Heartbeats шлются
Аналог пингов с нулевым байтом
Но этого нет в спецификации вебсокетов
Так что каждый сам реализует

Arsen
30.04.2018
11:04:13
Ну дак socket.io это вроде решает

Andy
30.04.2018
11:04:20
Аналог пингов с нулевым байтом
ну, так socket.io и работает с этим, я про это и говорил, только другими словами. просто на дисконнекте сервера сокет.ио вообще не понимает, что делать

Ivan
30.04.2018
11:04:20

Alex
30.04.2018
11:04:22
Решает но кривовато

Andy
30.04.2018
11:04:35

Alex
30.04.2018
11:05:06
Так что не всегда шлется сообщение о разрыве
Для этого и нужны хартбиты

Alex
30.04.2018
11:05:44
Браузеры не умеют переоткрывать сокет подключения
Так что на сервере надо выдержку когда закрывать соединение

Arsen
30.04.2018
11:06:23

Andy
30.04.2018
11:06:35
причина в том, что apple девайсы по-другому понимают закрытые вкладки и тд, те соединение вообще не держится даже в открытой вкладке. реально маразм.. пришлось сделать на pusher, но у меня нет столько денег, чтобы сотни чат каналов держать

Arsen
30.04.2018
11:07:03
Пипц

Alex
30.04.2018
11:07:23
Поэтому для авторизации и нужен refresh token
Что бы мапить новые подключения на сессию юзера

Google

Alex
30.04.2018
11:08:42
А пока не проходят хартбиты - складывать все в очередь

Andy
30.04.2018
11:09:44

Arsen
30.04.2018
11:11:03
Возможно проблема в тротлинге таймеров
https://github.com/turuslan/HackTimer
Попробуй заюзать этот костыль

Alex
30.04.2018
11:11:45

Andy
30.04.2018
11:11:48

Admin
ERROR: S client not available

Alex
30.04.2018
11:12:17
не совсем так

Roman
30.04.2018
11:12:21

Alex
30.04.2018
11:12:23
очередь складывается по id юзера
рефреш токен позволяет получить новый токен и как вариант параллельно замапить новое подключение на сессию

Arsen
30.04.2018
11:12:51

Alex
30.04.2018
11:12:59
и по id затем получить с очереди все сообщения
вообще классная практика - хотя бы раз с нуля все это реализовать на голых сокетах

Andy
30.04.2018
11:14:02
но... клиент то отключен, сокет.ио просто валяется в безысходности и не знает, что произошла беда. предлагаю затестить на ios, реал есть трабл

Alex
30.04.2018
11:14:23
забей на socket.io)

Arsen
30.04.2018
11:14:35
https://github.com/socketio/socket.io/issues/2924

Alex
30.04.2018
11:14:48
схема как пример - нода проксирует все
умеет ходить в сервис очередей - любой

Google

Alex
30.04.2018
11:15:25
умеет ходить на сервис авторизации

Andy
30.04.2018
11:15:32

Alex
30.04.2018
11:15:39
и следит за активными подключениями
стандартное время на закрытие сокета 30-40 секунд

Arsen
30.04.2018
11:16:23

Alex
30.04.2018
11:16:31
клиент через половину этого времени если не получает хербиты с ноды пытается открыть новое подключение
нода если его видит и авторизует - закрывает по id пользователя не закрытые
и дергает с очереди сообщения

Andy
30.04.2018
11:17:47
@AlexShepard89 @ArStah спасибо, буду пробовать

Alex
30.04.2018
11:18:00
я в свое время делал аналог слака
там готовые решения не подошли

Arsen
30.04.2018
11:18:17
Ещё как вариант попробуй выпилить socket.io в web-worker)

Alex
30.04.2018
11:18:36
для очередей redis самое то

Andy
30.04.2018
11:21:32
для очередей redis самое то
вот тоже смотрю в сторону node.js и редиса для очередей. пока проект не в лайве нужно найти устойчивое решение, чтобы потом не офигеть от переделок. pusher тоже уг, порой сообщения не доходят, а повторной отправки в пушере не предусмотрено) ably, кстати, решает это, но со своими нюансами
как на ваш взгляд, вот есть облако на zone.ee, на нем вся платформа. если чаты и webrtc развернуть отдельно в облаке flops.ru на убунту, это не слишком кошмарно с точки зрения архитектуры? основная задача – уменьшить расходы. на флопсе также крутится нода эфира

Alex
30.04.2018
11:25:11
до какого то порога срать на архитектуру
имхо надо делать mvp максимально дешево
а потом уже допиливать до реального rps
мы mvp делали за 3 месяца