Author Topic: IRC chat without using Java  (Read 25513 times)

Buzzard

  • Flying biker bandit
  • Hero Member
  • *****
  • Posts: 856
  • So I heard you like Mudkips
IRC chat without using Java
« on: December 08, 2005, 02:32:16 am »
So, Fyber has this crazy idea for making an IRC chat for the site without using Java. Essentially he wants to make something that anyone can use without downloading any extra software, so that you don't need to use anything like java, and well, I'll just post the log and let you figure out the rest.

[22:33] ::: Irssi: Starting query in fybertech with FyberOptic
[22:33] [Buzzard] fyber, I just got an idea for that chat thing
[22:33] [Buzzard] what about using Opera's javascript thing
[22:33] [Buzzard] program the chat into Opera like that image resizer
[22:34] [FyberOptic] i can do it in javascript in a way that ort to work for all browsers
[22:34] [FyberOptic] using a thing they started calling AJAX
[22:34] [Buzzard] ???
[22:34] [Buzzard] ajax?
[22:34] [FyberOptic] basically a way for the browser to communicate with the server after the page is already loaded
[22:34] [FyberOptic] it's like how gmail works, you know
[22:34] [Buzzard] hmmm!
[22:34] [FyberOptic] how parts of the page changes without reloading the page
[22:35] [Buzzard] oh yeah
[22:35] [Buzzard] I forgot about that
[22:35] [FyberOptic] but like I mentioned, this is just a thing where you connect, get and/or send some info, then disconnect, where as irc needs a persistant connection
[22:35] [Buzzard] though I never really got enough emails to see that in action
[22:35] [FyberOptic] which is why some middle-man program would be needed
[22:35] [Buzzard] I could see a possibility for Opera or Firefox
[22:36] [Buzzard] but it would be hard to make it work for IE or safari
[22:36] [Buzzard] the middleman programs could be add-ons
[22:36] [FyberOptic] naw I mean like a server-side app
[22:36] [Buzzard] oh
[22:37] [FyberOptic] i want it to be as cross-compatible as possible
[22:37] [FyberOptic] no matter the browser or OS
[22:37] [FyberOptic] so like the browser would connect just long enough to get and send chat info to this middle-man program, and that program would poop it all into IRC
[22:37] [FyberOptic] faking it into thinking those users were always on
[22:38] [Buzzard] hmm
[22:38] [Buzzard] wouldn't that end up sending messages in massive clumps?
[22:38] [Buzzard] and lag?
[22:38] [FyberOptic] possibly . . !
[22:39] [Buzzard] techinally the middle-man program could just fake out the user lagging
[22:39] [Buzzard] but constantly sending info to the server so you don't ping out
[22:40] [FyberOptic] yeah it'd keep up all the expected junks
[22:40] [FyberOptic] and also fake the ip address of the person connected, preferably
[22:40] [FyberOptic] to make them look like a normal irc user
[22:40] [FyberOptic] and allow them to be banned
[22:41] [FyberOptic] fake as in use their actual ip
[22:41] [Buzzard] I believe we may be on to something here...!
[22:41] [Buzzard] unless you already thought up all of that
[22:41] [FyberOptic] lol basically
[22:41] [FyberOptic] but the hard part is the whole middle-man
[22:42] [FyberOptic] I dunno how to handle the fake connections
[22:42] [Buzzard] I dunno what you'd use, either
[22:42] [FyberOptic] I mean I know that services uses kind of a fake connection
[22:42] [FyberOptic] cause one program is pretending to be nickserv, chanserv, memoserv, etc
[22:42] [FyberOptic] it communicates over a server linkage, pretending it's its own server with users, when really those users aren't real
[22:43] [FyberOptic] that's what I had in mind, a server linkage with fake users
[22:43] [FyberOptic] hence the idear of trying to butcher a copy of services
[22:43] [FyberOptic] but that's complicated shits
[22:43] [Buzzard] wait, is using the programming for nickserv and the like what you meant when you said you were picking apart the nickserv programming?
[22:44] [FyberOptic] yeah
[22:44] [FyberOptic] I was looking at how it warks
[22:44] [Buzzard] IT ALL MAKES SENSE NOW
[22:44] [Buzzard] hmm
[22:44] [Buzzard] you could make those things send out announcements, right?
[22:45] [Buzzard] using a sort of /notice thing
[22:45] [FyberOptic] yeah they can do all that sorta junks
[22:45] [Buzzard] maybe the middle-man could communicate by doing notices to the specific chat
[22:45] [FyberOptic] they wouldn't look like real users then tho
[22:46] [Buzzard] except, that would make for a lot of noise when you're in the chat
[22:46] [FyberOptic] if I were to take a route like that, I could just make the middle-man program connect as a normal user, and then show what people were saying from the web chat
[22:46] [FyberOptic] but that'd look kinda dum
[22:46] [Buzzard] like making a bot for people to communicate through?
[22:47] [FyberOptic] yeah, you'd see the bot talking for all those web chat people
[22:47] [FyberOptic] which would look kinda ugly
[22:47] [FyberOptic] that's why I wanted to hook straight into the server somehow
[22:47] [FyberOptic] even though that's the most complicated method
[22:47] [Buzzard] that would be like everyone trying to talk on teamspeak at the same time
[22:47] [Buzzard] so many people from one little voice
[22:47] [Buzzard] it would get jumbled
[22:47] [Buzzard] the bot thing
[22:48] [Buzzard] wait
[22:48] [Buzzard] how many people do we have connected to the chat using the java, tops
[22:48] [Buzzard] at one instance
[22:48] [FyberOptic] I also thought I could just make the middle-man program make multiple user connections for each person, and then it'd look more real, except they'd all be connected from the same address, so they couldn't ever be banned
[22:48] [FyberOptic] not many
[22:48] [FyberOptic] less than a handful
[22:49] [Buzzard] 4, 5, maybe?
[22:49] [FyberOptic] mabbe
[22:49] [Buzzard] what about making 4 or 5 bots, and then people connect to those bots
[22:49] [Buzzard] only 4 or 5 people on at a time, though
[22:49] [FyberOptic] yeah that's kinda like what I mentioned there, the program could connect as "bots" kind of, and then send the messages their browser transmitted
[22:50] [Buzzard] oh
[22:50] [FyberOptic] no way to ban tho
[22:50] [FyberOptic] and it seems java users are the ones that needed to be banned most
[22:50] [Buzzard] I keep getting ideas that seem amazingly cool, but then I find out you already thought them up
[22:50] [Buzzard] yeah
[22:51] [FyberOptic] lol well as long as you're on the same page
[22:51] [Buzzard] eyah
[22:51] [Buzzard] *yeah
[22:51] [FyberOptic] everyone else would already be lost !
[22:51] [Buzzard] well, I daydream a lot
[22:51] [Buzzard] and enjoy thinking up possibilities for things
[22:51] [Buzzard] so I come up with a lot of crap
[22:52] [FyberOptic] i been a thinkerin about it most of today, is why I had all them idears there
[22:52] [Buzzard] ah
[22:52] [FyberOptic] the best idea being to fake a server link so that the users would seem realistic
[22:52] [FyberOptic] the easier idea being to just connect as bots
[22:52] [Buzzard] I think I may have a solution to kickbanning people on the bots
[22:53] [Buzzard] you could make them make accounts, and when you need to block them, you just close the account
[22:53] [FyberOptic] yeah that'd be about the only way
[22:53] [Buzzard] or ban the IP from the registration page for those accounts
[22:53] [Buzzard] *and
[22:53] [FyberOptic] but then guests can't chat
[22:53] [FyberOptic] frown
[22:53] [Buzzard] no, not the bod
[22:53] [Buzzard] *bot
[22:54] [Buzzard] an actual account
[22:54] [Buzzard] better yet, you could have accounts, and then make the accounts go through a verification by someone
[22:54] [Buzzard] so that people don't pull a mysto
[22:55] [Buzzard] though that may turn off some possible newbies
[22:55] [FyberOptic] i like the idear of folks being able to chat without signing up if possible
[22:55] [Buzzard] yeah
[22:55] [FyberOptic] mabbe using sessions or something
[22:55] [FyberOptic] and I could just ban a session
[22:55] [FyberOptic] via the website
[22:55] [FyberOptic] instead of the normal +b in chat
[22:55] [Buzzard] it's just the only solution I can come up with for the bots idea
[22:56] [Buzzard] hmm
[22:56] [Buzzard] there's an idea
[22:56] [FyberOptic] but if I can get a server link method working, I can still ban them like always
[22:56] [FyberOptic] that's why it's the preferable way
[22:56] [Buzzard] most comfortable
[22:59] [Buzzard] it seems like it might work if we used something like Wesnoth uses for it's multiplayer games
[22:59] [Buzzard] except I'm not completely sure if it sends everything in massive packs
[23:00] [FyberOptic] well the way I see it, if I polled the server like every one or two seconds, how much chat could have really happened, you know
[23:00] [FyberOptic] surely it wouldn't look too clumped
[23:00] [Buzzard] yeah
[23:01] [FyberOptic] though polling every 1-2 seconds could cause server slowness from constant access
[23:01] [FyberOptic] dunno how I'd handle that
[23:01] [Buzzard] and 1 or 2 seconds isn't gonna kill you
[23:02] [Buzzard] hmm
[23:02] [Buzzard] server strain may cause problems
[23:02] [Buzzard] I should get my geek friend in here
[23:02] [Buzzard] I doubt he's still awake though
[23:03] [Buzzard] he'd prolly have some idea
[23:03] [Buzzard] s
[23:03] [FyberOptic] i'll figger somethin out eventually
[23:03] [FyberOptic] I mostly want to see if I can make a server link, just to see how it works. xD
[23:03] [Buzzard] it would be interesting to see how that would work out
« Last Edit: December 08, 2005, 02:37:56 am by Buzzard »
Ten years to the minute, no longer in it.

FyberOptic

  • King of Earth
  • Administrator
  • Hero Member
  • *****
  • Posts: 2522
  • Oh god what is that?
    • Fybertech.com
Re: IRC chat without using Java
« Reply #1 on: December 08, 2005, 03:02:40 am »
After you left, I started a packet capture and restarted services, then sent nickserv and such some commands just to create some traffic.  Upon inspecting the dump file, I found it communicates to the server with just a text protocol like normal IRC does.  So I added a new link configuration to the server's config file, and connected via telnet by typing in the proper craps.  Then hot times happened.

[02:53] * LOLOL (LOLL@poop.poop.com) has joined #fybertech

LOLOL is LOLL@poop.poop.com * supp
LOLOL using blrnt.fybertech.net lol
LOLOL End of /WHOIS list.

I can totally log in fake users, even with false ip's.  This means I should be able to connect users from a web chat interface into the chat, and they look like they connected through a normal IRC client.  :D

So at this point I should be able to try to mush together some sort of middle-man server application which a web browser can connect to in spurts to send and receive chat data, which is then dumped straight into the IRC server. 


UPDATE (30 seconds later!):

And then since I didn't reply to server pings via telnet, this happened:

[03:03] * LOLOL (LOLL@poop.poop.com) Quit (irc.fybertech.net blrnt.fybertech.net)

I created my own netsplit~
« Last Edit: December 08, 2005, 03:04:18 am by FyberOptic »

Bluejay

  • HERO OF FYBERTECH (tm)
  • Collguy
  • Hero Member
  • *
  • Posts: 1624
  • Careful, or the mice will rise up.
    • My Deviant Art page
Re: IRC chat without using Java
« Reply #2 on: December 08, 2005, 11:33:41 am »
*Bluejay is so lost, but wants to meet LOLL@poop.poop.net* He looks like fun guy
One day, when the zombies rise and destroy humanity; I will survive, I will live on, I will take your best stuff for myself.

Ciono

  • Coffee Fiend
  • Full Member
  • ***
  • Posts: 111
  • Fybar Wannabee
    • In Praise of Folly
Re: IRC chat without using Java
« Reply #3 on: December 08, 2005, 12:47:10 pm »
So, wasn't entirely a success because of the pingtimeout, but still a step in the rigth direction.
Booyaka

Buzzard

  • Flying biker bandit
  • Hero Member
  • *****
  • Posts: 856
  • So I heard you like Mudkips
Re: IRC chat without using Java
« Reply #4 on: December 08, 2005, 12:57:25 pm »
So, we got that middle-man thing done. Now we just need to figure out how to get a HUD up that displays the messages. I have an idea, but it's a little too complicated to explain in a post.
Ten years to the minute, no longer in it.

FyberOptic

  • King of Earth
  • Administrator
  • Hero Member
  • *****
  • Posts: 2522
  • Oh god what is that?
    • Fybertech.com
Re: IRC chat without using Java
« Reply #5 on: December 08, 2005, 01:53:27 pm »
The ping timeout happened just because I didn't manually type in the PONG response the server wanted, to know that the other side was still alive.  I was messing with it earlier and kept it going for a time, until I forgot to type it again loll.  Anyhow, this would all be automated once a program was written to handle the connection.  It's more a matter now of a way to communicate from a browser to the program for a web chat to work, and I have some idears in mind to try~

But as Buzzard mentioned, it'll need an interface.  If anyone has any idears for anything in particular, feel free to mention'em.  Otherwise I'll just figure something out to resemble mirc's interface.

Red_Raven

  • Guest
Re: IRC chat without using Java
« Reply #6 on: December 08, 2005, 01:54:52 pm »
PONG?

Buzzard

  • Flying biker bandit
  • Hero Member
  • *****
  • Posts: 856
  • So I heard you like Mudkips
Re: IRC chat without using Java
« Reply #7 on: December 08, 2005, 02:27:04 pm »
Yeah, if anyone has any ideas, feel free to let me or fyber know.
Ten years to the minute, no longer in it.

FyberOptic

  • King of Earth
  • Administrator
  • Hero Member
  • *****
  • Posts: 2522
  • Oh god what is that?
    • Fybertech.com
Re: IRC chat without using Java
« Reply #8 on: December 08, 2005, 04:15:02 pm »
PONG?

On IRC, the server sends a PING command to see if a client is still alive, and the client always responds with a PONG.  If there's no PONG after a certain amount of time, the server assumes you've been disconnected, and you show up in chat as having disconnected with a "ping timeout". 

Red_Raven

  • Guest
Re: IRC chat without using Java
« Reply #9 on: December 09, 2005, 07:53:37 pm »
oh ok, now i understand.