
Stanislav
06.04.2017
05:56:43

Марк
06.04.2017
05:56:53
Ага
Или в апаче аналогичная срань

Dmitry
06.04.2017
06:02:25
У меня стопицот раз такое и было.

Google

Dmitry
06.04.2017
06:02:43
Не считая плавных переездов с одного сервера на другой.

Magomed
06.04.2017
07:49:08
В нжинксе?
На digital ocean есть статья про это, очень подробная . Nginx+gunicorn+Django

Eugine
06.04.2017
09:05:02
Опять джанга ни к месту?

Alexey
06.04.2017
09:05:23
Да не, это чисто отправили мануал почитать
Там хоть фласк, хоть хуяск.

Magomed
06.04.2017
09:05:37

Eugine
06.04.2017
09:06:48
Пока я спал - было намного проще не жить..

Марк
06.04.2017
09:37:21
Народ, простите меня тупенького, но пока реально не вьезжаю, как подружить несколько классов в asyncio
Вот есть классический пример сервера и есть классический пример клиента. Как это запихнуть в луп?

luchezar
06.04.2017
09:39:12
сервер в лупе, клиент в лупе, велосипед в лупе и все в лупе, и ты в аду

Марк
06.04.2017
09:40:00
Ну а серьезно
хуячится run_forever(), в который можно заткнуть только один метод/класс. А еще есть какой-нибудь вебсокетовский сервер_креет.

luchezar
06.04.2017
09:44:12
ну сервак в одном run_forever например, клиент в другом

Google

luchezar
06.04.2017
09:44:42
или в одном процессе?

Марк
06.04.2017
09:45:43
Пжди, допустим, у меня есть сервак. Он там чет мутит. И когда данные пришли, мне нужно замутить коннект по вебсокетам, к примеру. Я сколько не гуглил, нихуя не нашел, как подружить эти два примера в одном приложении

luchezar
06.04.2017
09:48:03
а aiohttp не помогает?

Марк
06.04.2017
09:49:00
Не в aiohttp дело. Я не понимаю, че делать, если по примерам у клиента должен быть свой луп и у сервера.

luchezar
06.04.2017
09:51:18
че делать с чем? у тебя сервак пока идет чтение, может обработать асинхронно много реквестов за раз в своем лупе
то же самое на клиентской стороне
или в чем вопрос то, не доезжаю

Марк
06.04.2017
09:56:14
Блядь
ВОт есть у тебя вервер на вебсокетах
В этот сраный луп в калбеке залетает набор данных
Но если ты хуячишь какой-нибудь клиент, который требует тоже луп и через этот луп залетают тоже данные, то непонятно, как их соединить вместе

Zart
06.04.2017
10:01:02
луп общий

Eugine
06.04.2017
10:01:48
Один же луп. Просто вешается ивент на то, что сокет стал ридабл
Как только ивент проскакивает вызывается коллбек
Это типа общая теория, хз как в этих ваших аио

Марк
06.04.2017
10:02:46
А как мне в этот луп засунуть два метода/функции?

Eugine
06.04.2017
10:04:13
Мне порыться в доке? Или с этими новыми знаниями об эвентлупе ты сам сможешь?


Марк
06.04.2017
10:04:30
Да я рылся. Не вьезжаю
import asyncio
class EchoClientProtocol(asyncio.Protocol):
def __init__(self, message, loop):
self.message = message
self.loop = loop
def connection_made(self, transport):
transport.write(self.message.encode())
print('Data sent: {!r}'.format(self.message))
def data_received(self, data):
print('Data received: {!r}'.format(data.decode()))
def connection_lost(self, exc):
print('The server closed the connection')
print('Stop the event loop')
self.loop.stop()
loop = asyncio.get_event_loop()
message = 'Hello World!'
coro = loop.create_connection(lambda: EchoClientProtocol(message, loop),
'127.0.0.1', 8888)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()
mport asyncio
class EchoServerClientProtocol(asyncio.Protocol):
def connection_made(self, transport):
peername = transport.get_extra_info('peername')
print('Connection from {}'.format(peername))
self.transport = transport
def data_received(self, data):
message = data.decode()
print('Data received: {!r}'.format(message))
print('Send: {!r}'.format(message))
self.transport.write(data)
print('Close the client socket')
self.transport.close()
loop = asyncio.get_event_loop()
# Each client connection will create a new protocol instance
coro = loop.create_server(EchoServerClientProtocol, '127.0.0.1', 8888)
server = loop.run_until_complete(coro)
# Serve requests until Ctrl+C is pressed
print('Serving on {}'.format(server.sockets[0].getsockname()))
try:
loop.run_forever()
except KeyboardInterrupt:
pass
# Close the server
server.close()
loop.run_until_complete(server.wait_closed())
loop.close()

Google

Марк
06.04.2017
10:06:05
Это из доков. Как из соединить?

Eugine
06.04.2017
10:06:28
Нhttps://docs.python.org/3/library/asyncio-eventloop.html#watch-a-file-descriptor-for-read-events
тебе нужен другой уровень
да блин, нет, просто надо в какой-то момент регистрировать read event
все верно
с помощью loop.add_reader

Zart
06.04.2017
10:09:21
зачем..
loop.create_* возвращает таск
там run_until_complete - это коннект() или листен()
после чего тупо ран_форева
можно смело объединить оба примера воедино
луп = гет_ивент_луп()
коро = луп.крит_сервер(...)
сервер = ран_антил(коро)
коро = луп.крит_коннекшен(...)
клиент = ран_антил(коро)
луп.ран_форева # в этом месте у тебя уже и клиент и сервер будут пахать одновременно
ну и в финале сервер.клоуз

Марк
06.04.2017
10:13:05
Что из себя представляет луп в первой строчке?

Zart
06.04.2017
10:13:31
мне было влом переключить раскладку чтобы писать полное
loop = asyncio.get_event_loop()

Марк
06.04.2017
10:13:56
Я понял. Я за суть
А то в моей башке это хитрожопый бесконечный цикл

Alexey
06.04.2017
10:15:24
Ну.
луп — создай мне петлю с событиями.

Zart
06.04.2017
10:15:52
это простой бесконечный цикл с селектом

Марк
06.04.2017
10:16:30
Да, как события регать то? Есть клиент, который в лупе хавает одно, есть сервер, которые в лупе хавает совсем другое. Как в одном лупе их подружить?

Zart
06.04.2017
10:16:44
легко
я даже не понимаю в чем проблема

Google

Марк
06.04.2017
10:18:11
EchoClientProtocol(message, loop),
'127.0.0.1', 8888)

Zart
06.04.2017
10:18:15
https://www.youtube.com/watch?v=MCs5OvhV9S4 охуенный видос от бизли, в котором очень наглядно показана анатомия ивент лупов

Марк
06.04.2017
10:18:18
Ну вот из примера
И туда больше нихуя не запихнуть

Zart
06.04.2017
10:18:41
а это враппер
который по факту делает loop.create_*

Марк
06.04.2017
10:20:32
Лан, еще почитаю. Это я так, напоразмышлять
Кстати, что меня в тройке слегка выбесило, это ебучий тип bytes

Admin
ERROR: S client not available

Zart
06.04.2017
10:21:43
bytes в тройке это примерно нифига не str двойки

Марк
06.04.2017
10:21:57
угу
Ща по телнетику из рав сокетов считываю данные. Там все в b прилетает. Ебать кошмар

Zart
06.04.2017
10:23:45
а в чем должно?

Марк
06.04.2017
10:24:21
В двойке, наверное, в стр бы прилетало

Zart
06.04.2017
10:24:28
и?

Марк
06.04.2017
10:24:45
Что и?

Zart
06.04.2017
10:25:26
ну логично что однобайтовые последовательности что там что тут
в тройке str не однобайтовые

Марк
06.04.2017
10:26:01
Ну я пока не заборол их обработку.
Страшно охота вьебать decode(data,'ignore'), но дохуя критичных данных пропадает

Google

Zart
06.04.2017
11:07:14
но зачем...

Dmitry
06.04.2017
12:44:32
https://github.com/pypa/pypi-legacy/issues/627 вот зачем они это сломали... сволочи
пол дня совокупляюсь уже.

Марк
06.04.2017
13:30:26
Конференция посвященная работе и ТВОРЧЕСТВУ на PHP фреймворке Laravel
`
Поэтично то как
Не то что вы, неотёсаные петоноёбы, которые еще и матерятся

Stepan
06.04.2017
13:37:32

Alexey
06.04.2017
14:41:10
echo 'КПРФ' | iconv -t cp1251 | iconv -f koi8-r

Igor
06.04.2017
14:42:19
отлично описывает

Zart
06.04.2017
14:44:46
МЮУСИ

b0g3r
06.04.2017
15:02:07
йЮЙ ОЕПЕЙКЧВЮРЭ ЙНДХПНБЙС?

H
06.04.2017
16:16:48
бНОПНЯ

Zart
06.04.2017
16:31:45
обычно был оПХБЕР

Eugine
06.04.2017
16:58:02
Маловероятно
Там что-то другое было

Zart
06.04.2017
17:00:52
типичный ирц клиент с виндовой кодировкой на руснете

Alexey
06.04.2017
17:00:59
Да.
А тренажёры не нужны вообще никому. IRC чаты.

Zart
06.04.2017
17:01:14
— оПХБЕР
— МЮУСИ
— smeni kodirovku mudilo

Марк
06.04.2017
17:01:58
na translite toge zbs