MCPcopy
hub / github.com/aio-libs/aiohttp / heartbeat

Method heartbeat

examples/wssrv.py:151–180  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

149
150 @asyncio.coroutine
151 def heartbeat(self):
152 # setup pipes
153 read_transport, read_proto = yield from self.loop.connect_read_pipe(
154 aiohttp.StreamProtocol, os.fdopen(self.up_read, 'rb'))
155 write_transport, _ = yield from self.loop.connect_write_pipe(
156 aiohttp.StreamProtocol, os.fdopen(self.down_write, 'wb'))
157
158 reader = read_proto.reader.set_parser(websocket.WebSocketParser)
159 writer = websocket.WebSocketWriter(write_transport)
160
161 asyncio.Task(self.start_server(writer))
162
163 while True:
164 try:
165 msg = yield from reader.read()
166 except:
167 print('Supervisor is dead, {} stopping...'.format(os.getpid()))
168 self.loop.stop()
169 break
170
171 if msg.tp == websocket.MSG_PING:
172 writer.pong()
173 elif msg.tp == websocket.MSG_CLOSE:
174 break
175 elif msg.tp == websocket.MSG_TEXT: # broadcast message
176 for wsc in self.clients:
177 wsc.send(msg.data.strip().encode())
178
179 read_transport.close()
180 write_transport.close()
181
182
183class Worker:

Callers 1

startMethod · 0.95

Calls 8

start_serverMethod · 0.95
pongMethod · 0.95
set_parserMethod · 0.80
encodeMethod · 0.80
readMethod · 0.45
stopMethod · 0.45
sendMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected