WebSockets and the future!

Since twitch is largely “web” based. I understand right now twitch uses flash for both video and chat. Is there any info what will happen when html5 video is finally… released. Will there be a websocket html5 capable chat server. Or should I go ahead and make my bouncer server?

Come on, html5 is the future!!! I know video formats are not coming soon enough but don’t let that stop you from doing html5 websockets! <3 all of you there at twitch either way!

Websockets are likely in the future. There are a number of benefits to supporting websockets:

  • less resource intensive on clients which support them
  • less delay fetching resources on client (no request/response for SWF)
  • will work on platforms which don’t support flash

The reason it is not supported yet is because many of these are nice-to-haves and not required. We’ve been focusing on:

  • making chat reliable (less dropped messages, less errors connecting)
  • making sure chat features scale (currently reworking how our emoticon features work so that we can handle the ~30000 emoticons that currently exist (and growing very quickly)
  • supporting our product teams to create new Twitch features

So yes, this will likely happen. When? I can’t say.


I appreciate the very detailed answer! I will go ahead with the bouncer for now. Might look further into the flash socket, not sure.

So, flash socket bridge is a no go. Policy file on twitch only accepts from twitch. Any possibility of getting that policy file changed to allow from any host?

Last post about the whole thing. I am just trying to figure out the best way to do a web based client. Ideally I wouldn’t want any of the users data touching my server.

If opening the flash policy file seems too risky I have a few ideas that come from web irc.

Would it be possible to send say a “TMICLIENT appclientid user hostname ip” command before PASS and that would set up all of the variables that would be changed upon connection / the USER command. At least this way we can have an indirect client have more connections than what is possible right now. This could be setup for TMIBOT as well for those large multi channel bots.

Way more work but a very great idea for a direct client. If the flash policy server can “tell” the irc server hey a connection from so and so is coming in check for a TMICLIENT command then if the clientid is a true clientid then allow, if not then disconnect. This along with the connection/msg limits in place, would pretty darn hard to abuse. That way “you” could track specific apps going through a flash socket instead of having it wide open.

Note, I am happy as is with you guys even reading and responding. I know you have a lot on the table as is with getting everything going with ircv3 and everything that it allows the web devs to do.

The simple fact that I can even come here and talk to you guys is amazing.

Why not skip trying to connect to Twitch Chat via Twitch Chats flash socket and just connect to Twitch IRC using whatever you are comfortable with.

As thats all that the Flash Socket is doing, is facilitating the connection to “IRC”. Go straight to the chat server(s) rather than the bridge.

I am not using twitchs flash&javascript bridge socket. I am using the same idea yes. But there is no native way to connect to the irc server via the clients browser right now other than a signed java applet,flash, or a websocket indirect bouncer. Flash socket being the easiest to implement right now for both twitch devs and third party devs. Maybe a browser extension but that is yet another thing for the user to download and I don’t want to change the look of twitch. I’m not competing nor trying to make a better product.

Note a websocket indirect bouncer instantly hits the connection limit without any sort of webirc protocol attached. java applet if it isn’t properly signed the user has to jump through hoops just to get it to run. Flash atm all it takes is editing the policy file itself and how it is handled depending how they have that setup for both video and chat. And if they want more security they could then add some sort of webirc protocol that way an app can be tracked rather than the users.

The latter is “easy” for them where the pure websocket server that this OP was about is changing a lot of the back end. And I understand that they may be looking at it but the constraints right now are more about the features some team wants like I seen the vote function floating around in some chats here and there. That is a really cool addition to the ircv3 that they’re working on right now.

Guess I should have made it clear what I am trying to do. I am trying to make a personal bot “the ‘users’ bot name” within a website. I have a bunch of other things dealing with obs as well but that’s not the subject. Pretty much a personal bot with all the features and knobs and dials and pulleys that a bot comes along with, just inside of a browser. So instead of having users download a program and have them jump through hoops to run and setup, I am just going to push them to a page where they auth the bot name and boom the bot is there and ready to roll.

That is completely the wrong approach for this kind of thing I feel.

Sure use a web browser to auth and control.
But dump the actual bot off to a service which can receive the relevant auth.

That said there are plenty of libraries out there to connect to IRC under a pure HTTP environment. Not how I’d do it tho…

Moobot, Nightbot and alot of other bots already have that. If all you want is to show chat in the dashboard, you can use embedded chat (via iframes) to do that.

I keep writing longer and longer msgs. Thank you for the suggestions but they do not help with anything. I really don’t want to be “hard headed” but honestly I’m am not going to write a full on single bot and service when nightbot can be an easy suggestion for me to make to anyone.

I honestly feel for him with having to constantly make sure his massive network of a bot doesn’t tickle any of twitches limitations and constantly expanding with every new active channel his bot is ran in when a user does !join.

Please let this topic close unless you have any real information or examples.

Designing a Twitch bot is a long and hard task. There are definitely limitations that have to be considered, and a bot that runs inside a web browser isn’t feasible at this point in time unless you want to relay TMI over a websocket using a custom coded server. These forums are great for sharing ideas and fixing broken code, but we can’t really walk you through the entire process of getting a relay service, as mentioned above, working.

This Colten45 guy seems to know what he’s talking about. Should definitely listen to what he has to say BloodTrail. Speak your mine!

I was never asking for how to do a relay “bouncer” server, done em and don’t care to do another. As you know and as I have found out through the noted endeavors, a pure browser based client/bot inside of the users browser is indeed a non possibility right now.

I simply asked to let it close unless like Barry claims there is currently a working method to do so. The topic wasn’t about bouncers and was more asking twitch devs when websockets could be expected in the future and then noting my endeavors on trying to figure out a way to do such a thing and failing but finding information that others might have found useful. But all I get is no, should be done this way.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.