Hi all I am just cleaning up a few bits with the bot I created. I was just wondering how to check for disconnect so I can reconnect with backoff? I just dont know what response to check for? Any pointers here would be great.
Thanks in advance
Hi all I am just cleaning up a few bits with the bot I created. I was just wondering how to check for disconnect so I can reconnect with backoff? I just dont know what response to check for? Any pointers here would be great.
Thanks in advance
Your socket actually gets disconnected…
You may get sent a RECONNECT
message which is a instruction that Twitch Chat is restarting and you need to reconnect.
You can also use a Ping/Pong to test the connection and/or see if the connection has died due to lack of PINGs from the server, or replies to PINGs you send yourself, or both together.
Perfect that works so if I PING the server how long to wait for PONG?
<1 second usually.
It’ll only be slower if your connection is really bad, and if thats the case you should reconnect anyway to find a better route
Okay thanks Barry that should do nicely
One quick one Barry. I’m using Python, so if the connection to the socket is disconnected can I simply catch the exception for trying to read or write to it and then simply set up a new socket with the same variables and exponentially back off until I either connect or wait for some amount of time…ooooorrrrr PING/PONG?
Both
Hi, am I allowed to pop my code up to get feedback and advice on my connection method? I am new to programming twitch bots and although I pretty much live in the docs at the moment it would be nice to make sure I am proceeding correctly from a learned eye.
-turds
Hey turds, what lib are you using to connect to the IRC? I’m using aiohttp and I check for aiohttp.WSMsgType.CLOSED
to reconnect, when it comes to reconnecting Twitch expects you to wait exponentially for the reconnect to go through so I am using await asyncio.sleep(2 ** self.reconnections)
to await before reconnecting.
Also not sure if this helps but the PONG reply to twitch PING should be sent as TEXT - at least it failed whenever I tried to use the aiohttp.websocket.pong.
Hope this helps
Hi Fabio,
I am importing socket and connecting. It all seems to be working at the moment but I am going to do some unit testing next week. I havent used aiohttp and will have a look later so thank you for that. I am sending the PING PONG as bytes array with str.encode and all seems fine…It will prob crash somewhere for me at some point …At the moment the function recursively backsoff from the server if something goes wrong…Again seems fine at the moment but more testing.
Thanks -Turds
Ah awesome, glad you have everything working I’m using aiohttp because the project that I’m adding the Twitch connector is an async library
if you need any help I’d be more than happy to give a hand if you have your code on github
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.