aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake <[email protected]>2016-06-05 20:29:54 -0700
committerJake <[email protected]>2016-06-05 21:18:36 -0700
commit41a2b5ed73aa5e39a6cd207a61c1aaaa69b8171e (patch)
tree41135e8e5ac36c37daf8f12e4fe7d4400b861498
parent[commands] Unify Command.handle_local_error into general dispatcher. (diff)
downloaddiscord.py-41a2b5ed73aa5e39a6cd207a61c1aaaa69b8171e.tar.xz
discord.py-41a2b5ed73aa5e39a6cd207a61c1aaaa69b8171e.zip
Actually read from the voice websocket & fix heartbeat.
This change makes it so that the buffer doesn't fill and the voice server drops the socket. Also, use correct interval for voice websocket heartbeat.
-rw-r--r--discord/gateway.py2
-rw-r--r--discord/voice_client.py10
2 files changed, 11 insertions, 1 deletions
diff --git a/discord/gateway.py b/discord/gateway.py
index a569e464..3a81b991 100644
--- a/discord/gateway.py
+++ b/discord/gateway.py
@@ -549,7 +549,7 @@ class DiscordVoiceWebSocket(websockets.client.WebSocketClientProtocol):
data = msg.get('d')
if op == self.READY:
- interval = (data['heartbeat_interval'] / 100.0) - 5
+ interval = data['heartbeat_interval'] / 1000.0
self._keep_alive = VoiceKeepAliveHandler(ws=self, interval=interval)
self._keep_alive.start()
yield from self.initial_connection(data)
diff --git a/discord/voice_client.py b/discord/voice_client.py
index d923cba0..a49b3a35 100644
--- a/discord/voice_client.py
+++ b/discord/voice_client.py
@@ -225,6 +225,16 @@ class VoiceClient:
self._connected.set()
break
+ self.loop.create_task(self.poll_voice_ws())
+
+ @asyncio.coroutine
+ def poll_voice_ws(self):
+ """|coro|
+ Reads from the voice websocket while connected.
+ """
+ while self._connected.is_set():
+ yield from self.ws.poll_event()
+
@asyncio.coroutine
def disconnect(self):
"""|coro|