@python_beginnersЭта группа больше не существует

Страница 624 из 1885
F
25.10.2016
12:28:01
да я вообще хочу его на ХТТП сделать

пуши пока нет, но потом да

они будут отдельно жить от чата

Igor
25.10.2016
12:28:44
да в смысле - "на хттп"? веб-сокеты тоже хттп используют, так-то. для установки соеднинения (хендшейка) как минимум

Google
F
25.10.2016
12:29:00
подразумевал на гет/пост

хендшейк не считается))

там задача сделать хоть как нибудь, но быстро

но есть опасения, что если я так сделаю, то у меня умрет сервак)

потому что это пиздец)))

но лень сильнее совести

Igor
25.10.2016
12:32:02
ок :) ну слушай, там даже в случае с хттп есть несколько вариантов. есть лонг-поллинг (когда соединение держится долго - пока сервер не подготовит ответ (сообщение) для клиента). старо и надежно есть стриминг (не помню, чем он хорош-плох) есть server-side events

ой. server-sent events*

F
25.10.2016
12:33:01
что из этого используется в джанго из коробки, на том и делаю)

Igor
25.10.2016
12:33:30
а можешь просто периодически пинать обычные get-запросики "есть новые сообщения? если есть - пришли", но тогда реалтайм теряется и запросы зазря отправляются, уж лучше лонг-поллинг

Igor
25.10.2016
12:33:58
ну это неэффективно очень, имхо

могу ошибаться, у меня не так много опыта с этим было

Google
F
25.10.2016
12:34:13
да, очень неэффективно и быдлокод

я поэтому и спросил про воркеров у uwsgi

потому как даже если сделал говно, можно выехать на ресурсах

Igor
25.10.2016
12:34:42
тебе насколько нужна реал-таймовость сообщений?

F
25.10.2016
12:34:52
не нужна

Igor
25.10.2016
12:35:09
потому как даже если сделал говно, можно выехать на ресурсах
правильно, давайте закажем машин в AWS на 10к баксов/месяц просто потому, что наговнокодили!

F
25.10.2016
12:35:24
ну а что, рабочий подход :D

то-то на телефонах с андроидом столько ядер и озу

Igor
25.10.2016
12:36:02
не нужна
насколько не нужна?)) если сообщение терпит минуту, то можно клиентом раз в минуту запрашивать сообщения и если че, получать новые (но тогда все равно прочитанные надо будет как-то сохранять, или таймстамп на клиенте)

и тогда никакие веб-сокеты нахуй не вперлись, действительно

короче, нужны подробности по поводу использования))

F
25.10.2016
12:36:41
не умрет ли сервак у меня?))

использование, скорее, не как полноценный чат, а доп фича в прилоухе, по типу чатов с консультантами

Igor
25.10.2016
12:37:15
ну что за вопрос) смотря какой сервак, смотря как работает протокол, смотря сколько пользователей

а, т.е. им будет пользоваться от силы 10% клиентов? %)

ну не раз в минуту, но раз в секунд 5-10 если
я думаю лонг-поллинг норм должен быть. со стороны сервера это будет очень похоже на обычное httpшное restоподобное api разве что надо будет мидлварю впихнуть или декоратор/миксин какой-нибудь, чтоб соединение держалось

F
25.10.2016
12:38:47
ну что за вопрос) смотря какой сервак, смотря как работает протокол, смотря сколько пользователей
относительный)) по типу Если сделать в главном потоке бесконечный цикл, то это плохо и пиздец, потому что ничего не будет работать А если что-то тяжелое делать, то просто будет подлагивать и покатит

Igor
25.10.2016
12:39:16
ну можно очередь воткнуть, celery всякие для того и созданы были

F
25.10.2016
12:39:25
Google
Zart
25.10.2016
12:40:33
чо вы паритесь. модель чат - дата-ник-текст, на клиенте аякс с гетом since=prevstamp по таймеру

F
25.10.2016
12:40:43
ну можно очередь воткнуть, celery всякие для того и созданы были
думал тоже об этом, но не работал с ней до этого, так что такой подход потребует вложений времени

Zart
25.10.2016
12:41:02
слать бочки постом братья карамазовы

Zart
25.10.2016
12:41:29
это из золотого теленка ж

F
25.10.2016
12:41:44
чо вы паритесь. модель чат - дата-ник-текст, на клиенте аякс с гетом since=prevstamp по таймеру
яннп там жи из приложухи вызовы, обычные геты будут, без аякса даже

Zart
25.10.2016
12:41:44
шлите апельсины бочками

Igor
25.10.2016
12:42:12
сделай тогда максимально просто, чтоб клиенты каждые эти 5-10 секунд кидали GET /messages?since=1477399328

Zart
25.10.2016
12:42:14
вместо аякса хттп клиент.

там будет банальный селект вхере стемп>дата

Igor
25.10.2016
12:42:50
угу

F
25.10.2016
12:43:00
тоесть не такой уж и пиздец я задумал?

Igor
25.10.2016
12:43:03
и индекс в таблице по timestamp'у, естестна

(и юзеру)

запросы в БД будут очень быстрые, соединения будут шустро закрываться

на клиенте - не запрашивать сообщения, пока юзер не открыл чатик (очевидно)

или запрашивать, если юзер туда че-то написал за последние несколько часов

(чтобы получить ответ)

Google
Igor
25.10.2016
12:44:33
но это уже тонкости

если че- можно будет пуш-уведомления отправить при появлении нового сообщения, а приложенька уже сама потом очнется и будет че-нить делать

F
25.10.2016
12:45:48
таки да меня смущает еще момент с запросом диалогов, по типу как в вк, но там тоже можно какой-нибудь синс воткнуть и возвращать только те диалоги, в которых время последнего сообщения > синс

Zart
25.10.2016
12:50:05
&chatid=token

F
25.10.2016
12:51:08
ага @iamigor хорошо что ты про индексацию таблиц напомнил, я бы забыл))

уф, спасибо ребятки, теперь план на вечер мне ясен

Admin
ERROR: S client not available

Zart
25.10.2016
12:52:12
только грязный секс во всех позах

Igor
25.10.2016
13:06:06
ага @iamigor хорошо что ты про индексацию таблиц напомнил, я бы забыл))
не за что ) хуячь индексы по основным штукам, которые будут фильтроваться. в твоем случае, мне кажется, это будет юзерайди и timestamp/created_at т.к. запрос в БД будет типа такого: SELECT * FROM messages WHERE recipient_id = <self.request.user.id> AND created_at >= <self.request.GET['since']>

Zart
25.10.2016
13:19:37
у него ж будет тёплый ламповый джангоорм

Igor
25.10.2016
13:20:59
да, я джангоорм забываю уже просто %)

P-zombie
25.10.2016
13:28:13
Блядь, у меня серверная винда 2012, и надо как-то чекнуть ее на вирусы. ПРобую разнуе триалки, шлют нахуй и с серверами не работают

Zart
25.10.2016
13:28:32
угу

b0g3r
25.10.2016
14:31:38
ух

https://github.com/nickoala/telepot/issues/165

я так понимаю сидеть на попе и ждать?

Zart
25.10.2016
14:32:24
опенсорц. напильник вот там

b0g3r
25.10.2016
14:34:20
я пока даже не понимаю из-за чего эта проблема

низя часто устанавливать вебхук или что)

Stanislav
25.10.2016
14:39:48
Если есть экземпляр класса, и я могу по нему итерироватся Я щас смотрю сорс класса и хочу найти то что дает мне по нему итерироватся

Google
Stanislav
25.10.2016
14:39:53
Что за это отвечает?

Zart
25.10.2016
14:40:02
метод __iter__

Stanislav
25.10.2016
14:44:04
Ща найдем

Zart
25.10.2016
14:44:50
либо гетитем, для легаси

Stanislav
25.10.2016
14:45:11
Zart
25.10.2016
14:45:32
изначально итерация в питоне была через гетитем

потом её сделали универсальной

>>> class A: ... def __getitem__(self, key): ... if 0 <= key <= 4: ... return key*10 ... raise IndexError(key) ... >>> a = A() >>> list(a) [0, 10, 20, 30, 40]

>>> a.__iter__ Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'A' object has no attribute '__iter__' >>> iter(a) <iterator object at 0x009C94F0>

Alexey
25.10.2016
14:52:38
Привет, случайно, ни у кого нет док-та: Sublime text python guide (windows edition)? Да, виндовс, громко не смейтесь)

V
25.10.2016
15:11:38
вот занимательная история, может кто сталкивался с подобным. есть такой себе редис, сидит на удаленном хосте. заходим на хост по ssh, локально запускаем redis-cli, все работает. ок, делаем ssh-туннель, запускаем redis-cli локально, он идет через туннель на удаленный хост, коннектится, авторизуется, но данных не видит. в info показывает # Keyspace db1:keys=100500,expires=0,avg_ttl=0. но на запрос keys * говорит нет у вас ключей. вообще.

Louis
25.10.2016
16:42:43
tutorial типа

походу

по сублиму

как им пользоваться в редакторе

так там все есть

Allison
25.10.2016
16:59:44

Страница 624 из 1885

Эта группа больше не существует Эта группа больше не существует