Page 2 of 6

Posted: Wed Sep 12, 2007 7:00 pm
by starfinger
Lunkhead wrote:JWChat only communicates using HTTP, while Jabber servers natively use XMPP, so you need something acting as a gateway, translating between those two protocols. You either need to have the gateway/translation functionality built in to your Jabber server (as in Jive OpenFire or ejabberd), or you need to run some process like a cgi or a Java servlet (as in JabberHTTPBind) to add the functionality to your Web/application server.
Well, maybe this does work with dreamhost, as I got the jwchat.org demo to connect fine with a dreamhost-hosted jabber conference room. I thought the problem was that jwchat required php to be able to somehow ping the jabber server in the background.

-craig

Posted: Wed Sep 12, 2007 7:04 pm
by jb
Well the "MUCKl" thing, based on JWChat, uses a single Jabber user and lets everyone sign in using it. So if the gadget is connected to a Jabber server that's on SongFight.org (or whatever Dreamhost is doing to let us have a Jabber presence) then people using the Web interface should be able to just open the page and sign in that way. I dunno how that would look if you then connected to the server via regular Jabber-- although I guess you could only do that if I gave you a Jabber account on SongFight.org.

Since Starf thinks he's gotten it to work, I guess I might as well give the thing a shot. I already downloaded the MUCKl stuff. If shadowy puppetmaster wants to mess with it, he's welcome to. I'll set up whatever's required on Dreamhost.

JB

Posted: Wed Sep 12, 2007 7:06 pm
by fluffy
I guess I'm unclear on why the heck MUCKl is using Jabber in the first place, if it provides its own conference room functionality. Maybe I'll read up on it.

Posted: Wed Sep 12, 2007 10:20 pm
by Lunkhead
JWChat is a full Web Jabber client. It uses a JavaScript library, which communicates via the Jabber HTTP binding/polling protocols to talk to a Jabber HTTP binding/polling gateway, which in turn handles the actual communication with the Jabber server.

MUCkl is just a stripped down version of JWChat. It's still a Jabber client, so that's why it needs a Jabber server. The UI is limited to just taking you straight into a single multi-user chat.

It's possible that MUCkl would work, if the jwchat.org demo was able to connect to a Dreamhost Jabber server. That might mean that the Dreamhost Jabber server has the HTTP binding/polling gateway built-in.

Starfinger, can you please explain in greater detail what you put into the form on jwchat.org go get things to work? Obviously I don't mean "give us the username and password and server so we can h4x0r you", but maybe you could say what you did so that JB can repeat it for songfight.org?

Posted: Wed Sep 12, 2007 10:26 pm
by Billy's Little Trip
I like pong

Posted: Wed Sep 12, 2007 11:12 pm
by Caravan Ray
Billy's Little Trip wrote:I like pong
:lol:

Posted: Thu Sep 13, 2007 5:43 am
by starfinger
Lunkhead wrote: Starfinger, can you please explain in greater detail what you put into the form on jwchat.org go get things to work? Obviously I don't mean "give us the username and password and server so we can h4x0r you", but maybe you could say what you did so that JB can repeat it for songfight.org?
when you set up jabber users with dreamhost, it automatically starts directing conference.jabber.yourdomain to the appropriate jabber conference server.

any program that knows how to use jabber groupchat (including jwchat and gaim/pidgin) can then do whatever it knows how to do with rooms on that server. to create a new room, you just join one that does not already exist.

I just tested this again using the demo on jwchat.org to conference on my dreamhost jabber stuff. the question is "can dreamhost run these web-based jabber clients?"

individual users do not need a songfight.org jabber account to log in (or even set up a new room, apparently)

-craig

Posted: Thu Sep 13, 2007 6:54 am
by starfinger
stop the presses! the reason that the jwchat.org demo works on dreamhost is that it's using its own local http polling service to communicate with my dreamhost jabber server (not hitting dreamhost directly).. that is a bit of a setback.

-craig

Posted: Thu Sep 13, 2007 7:06 am
by Hoblit
jb wrote:Except that the last release of phpopenchat is from 2005. :-/
and thats probably the last time I dealt with it! :/

Posted: Thu Sep 13, 2007 7:54 am
by fluffy
starfinger wrote:stop the presses! the reason that the jwchat.org demo works on dreamhost is that it's using its own local http polling service to communicate with my dreamhost jabber server (not hitting dreamhost directly).. that is a bit of a setback.

-craig
So it needs to run a polling daemon? Blah, that violates the Dreamhost TOS.

Posted: Thu Sep 13, 2007 7:57 am
by starfinger
yeah.. ideally the jabber server would have the polling service built-in, which is what i thought was happening when jwchat.org started to work. alas!

Posted: Thu Sep 13, 2007 9:29 am
by Lunkhead
starfinger wrote:stop the presses! the reason that the jwchat.org demo works on dreamhost is that it's using its own local http polling service to communicate with my dreamhost jabber server (not hitting dreamhost directly).. that is a bit of a setback.

-craig
Yeah, that's what I was trying to get at.

Posted: Thu Sep 13, 2007 9:53 am
by Lunkhead
Polling is generally how Web chat clients work, isn't it? So if polling is against the TOS then probably none of the simpler chat clients mentioned here are going to work, right?


There is another option with Jabber/JWChat, though, which is called "binding", and it's actually the preferred method for Web Jabber clients these days:

http://www.xmpp.org/extensions/xep-0124.html

It basically fakes having an open socket to the gateway, without using polling. It may still violate the Dreamhost TOS, I have no idea.

Basically, what you'd need to know to find out if JWChat/MUCkl would work is:

1. What Jabber server is Dreamhost using?
2. Does it support Jabber HTTP Binding (aka XEP-0124, see URL above)?
3. If it does, would binding connections from JWChat/MUCkl to the Jabber server be allowed?
4. If the server doesn't support binding, can you run the Jabber HTTP Binding Java servlet?
5. If you can run that servlet, would binding connections from JWChat/MUCkl to the servlet be allowed?

Posted: Thu Sep 13, 2007 11:11 am
by starfinger
Lunkhead wrote: Yeah, that's what I was trying to get at.
The jwchat interface had me believing that it was communicating via http binding directly with the dreamhost jabber server, thus showing that the dreamhost server had http binding enabled. it is not.

this is irrelevant, other than that it answers question 2 from your next post. also, servlets are verboten on dh. Furthermore mod_proxy is not enabled, so the kind of request redirection that MUCKl/jwchat need is not available.

-craig

Posted: Thu Sep 13, 2007 1:27 pm
by fluffy
Lunkhead wrote:Polling is generally how Web chat clients work, isn't it? So if polling is against the TOS then probably none of the simpler chat clients mentioned here are going to work, right?
I meant on the server side, not the client side. It sounds like jwchat/MUCKl needs to have a service which polls for messages from the Jabber server, which requires running something persistently, which is only allowed on dedicated servers as per the Dreamhost TOS.

Posted: Thu Sep 13, 2007 3:05 pm
by Lunkhead
fluffy wrote:
Lunkhead wrote:Polling is generally how Web chat clients work, isn't it? So if polling is against the TOS then probably none of the simpler chat clients mentioned here are going to work, right?
I meant on the server side, not the client side. It sounds like jwchat/MUCKl needs to have a service which polls for messages from the Jabber server, which requires running something persistently, which is only allowed on dedicated servers as per the Dreamhost TOS.
XMPP doesn't involve polling. So the HTTP/XMPP gateway would not technically be polling the Jabber server, it would be managing a set of open two-way connections to the Jabber server.

The JavaScript would be polling the HTTP/XMPP gateway if you choose to set it up that way, but as I said, binding is the preferred protocol, so, technically, there wouldn't have to be any polling involved anywhere.

But it sounds like the polling part isn't the sticking point. It sounds to me like what you're saying is that Dreamhost doesn't allow a non-dedicated hosting user to set up a servlet and have that available all the time? And/or they don't allow a non-dedicated hosting user to run an app which will spawn and manage threads?

Posted: Thu Sep 13, 2007 3:45 pm
by fluffy
Well, yeah, you can't run a persistent process, which is what I mean. No incoming sockets etc. So polling or not, that's a problem.

Posted: Thu Sep 13, 2007 4:24 pm
by Lunkhead
Sounds like you guys need dedicated hosting. ;)

Posted: Thu Sep 13, 2007 4:44 pm
by fluffy
Dreamhost actually does provide dedicated virtual servers now, and it's amazingly easy to set up, and actually pretty reasonably-priced too. I wouldn't personally see running a web-based chatroom as a compelling enough reason to switch to it, but JB might disagree. Who knows.

Posted: Fri Sep 14, 2007 6:47 am
by jb
dedicated hosting is a giant pain, and i ain't doin' it again unless i'm getting paid to sift through f-ing httpd logs all damn day. :)

Posted: Fri Sep 14, 2007 9:24 am
by starfinger
if somebody had dedicated hosting, they could host a chat.songfight.org subdomain ...

-craig

Posted: Fri Sep 14, 2007 9:50 am
by roymond
fluffy wrote:Dreamhost actually does provide dedicated virtual servers now, and it's amazingly easy to set up, and actually pretty reasonably-priced too. I wouldn't personally see running a web-based chatroom as a compelling enough reason to switch to it, but JB might disagree. Who knows.
Dreamhost reliability lately has been ass. Insane amount of outages, both site hosting and webmail. I'd let them recover a bit before recommending anyone switch to Dreamhost.