Author |
Topic: Experimental chat room - call for testers (Read 2802 times) |
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Experimental chat room - call for testers
« on: Feb 15th, 2008, 2:59am » |
Quote Modify
|
Since the troubles we've been having on the different chat systems of the Gameroom, I've been working on and off to make a new chat system, which is coming close to usable, and Omar told me I could call for testers in the forum. If you wish to test it, please read on: Try the functionalities on as many browsers and platforms as you can. If you want to make hard stress tests, please wait until Monday when I am more available to restore the server in case of a crash. It works entirely in Javascript (using Ajax techniques), and the sound works on whichever media plugin is the default on your browser. Internet Explorer will issue an ActiveX warning the first time a sound is about to be played, so you have to allow it. It should theoretically work also on old versions of Firefox and Internet Explorer, but I need more testing to ensure it. On IE6 especially, I still have to know how the http request system will work with the corresponding ActiveX object. The test version doesn't check for the uniqueness of login names, this is intentional until the chat runs on the Gameroom user authentication system. There are a few known problems which I don't know how to solve yet: - When the sound alerts are on, Firefox will bring the chat window to the foreground when any other Firefox window has the focus, which is very annoying. - Automatic logout when closing the chat window doesn't work in Firefox. Neither onunload or onbeforeunload events seem to be able to run the code to inform the server that the user is logging out. This works on my local server though. If you see the system is down, please alert me by PM on this forum. Here it is, located on a temporary web site during the development: http://lestrucsaleo.net/arimaa/chatroomtest/ Thanks for testing, suggesting improvements and bug fixes. If the system gets adopted for the Gameroom I think it would be good to make it a collaborative development.
|
« Last Edit: Feb 15th, 2008, 3:03am by leo » |
IP Logged |
|
|
|
Janzert
Forum Guru
Arimaa player #247
Gender:
Posts: 1016
|
|
Re: Experimental chat room - call for testers
« Reply #1 on: Feb 15th, 2008, 5:02am » |
Quote Modify
|
Looks like it will develop into a great system. I tried it with Firefox 2.0.0.12 on windows XP. When I tried it just now, there was about a 10-15 second delay before what I typed showed up and then it seemed to repeat the last couple things I said multiple times over. [Edit: hmm and after I logged out and back in it seems that each line really is showing up only once, apparently just repeating locally] Great start and hopefully it won't be too hard to make it stable for everyone. Janzert Addition 2: Not sure if it's actually significant but at random intervals I'm seeing the following error in the firebug console. [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://lestrucsaleo.net/arimaa/chatroomtest/htr.js :: anonymous :: line 37" data: no] http://lestrucsaleo.net/arimaa/chatroomtest/htr.js Line 37 They seem to be after a post request fails.
|
« Last Edit: Feb 15th, 2008, 5:11am by Janzert » |
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Experimental chat room - call for testers
« Reply #2 on: Feb 15th, 2008, 5:54am » |
Quote Modify
|
Thanks, Janzert! Yes, the repetition is only client-side, it doesn't appear in the archive, and I'll have to figure out why it happens at all... although I suspect it has to do with requests that pile up during blocking times. I think I'll revert to having the checking function recall itself instead of using a repetition timer. It might be related with the exception error you're getting. I keep firebug open too to see if i get the same thing. I just got an 8-fold repetition once while test-chatting with 99of9.
|
|
IP Logged |
|
|
|
The_Jeh
Forum Guru
Arimaa player #634
Gender:
Posts: 460
|
|
Re: Experimental chat room - call for testers
« Reply #3 on: Feb 15th, 2008, 10:14am » |
Quote Modify
|
It looks great. Is there any way to increase the checks rate to less than one second? It is most impressive.
|
|
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Experimental chat room - call for testers
« Reply #4 on: Feb 15th, 2008, 10:57am » |
Quote Modify
|
Thanks, The Jeh. The polling rate is intentionally limited to 1s (and defaults to 2s) in order not to saturate the server with constant HTTP requests. There exist techniques of "reverse Ajax" though, which allow for instant notification when an update is available, much better for a chat client, but they require a bit unusual software on the server side. It would be good to discuss this topic, and see if the Arimaa server could have such technology installed. Streaming Ajax: http://en.wikipedia.org/wiki/Comet_(programming) EDIT: Maybe the game client already works this way, at least the Flash version? (I think Flash can handle persistent sockets and those nifty things without the heavy weight of HTTP)
|
« Last Edit: Feb 15th, 2008, 11:05am by leo » |
IP Logged |
|
|
|
The_Jeh
Forum Guru
Arimaa player #634
Gender:
Posts: 460
|
|
Re: Experimental chat room - call for testers
« Reply #5 on: Feb 15th, 2008, 1:37pm » |
Quote Modify
|
If it's going to complicate things, don't bother. 1s is definitely good enough. I'm sure you don't want to get into things that will potentially cause difficulties later on. The only thing I can think of would be to put a frame around the color that you are currently using. And I don't know whether you want to bar a user from using a taken color or not. These are just icing on the cake, though. I think it is currently good enough to be used.
|
« Last Edit: Feb 15th, 2008, 1:37pm by The_Jeh » |
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Experimental chat room - call for testers
« Reply #6 on: Feb 16th, 2008, 12:42am » |
Quote Modify
|
Yes, marking the currently selected color is in the plans, as well as generating links on recognized URLs, and transforming the traditional IRC command "/me", and there's still much room for improvement. Most of the work is done client side in the Javascript files which are included in the chat and archive pages. I will updload a zipped package of all js and php files tonight (European time) so that anyone who'd like to experiment with changes and improvements can. I will be internet-less all of today so I hope nothing will crash meanwhile. I will miss a lot of Round 6 games
|
« Last Edit: Feb 16th, 2008, 12:45am by leo » |
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Experimental chat room - call for testers
« Reply #7 on: Feb 21st, 2008, 10:48am » |
Quote Modify
|
I didn't have time to dive into the code and comment it, and I won't be able to do so until next week, sorry Anyway the js scripts are readily browsable meanwhile, and even if they are not commented they are relatively simple.
|
|
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Experimental chat room - call for testers
« Reply #8 on: Mar 6th, 2008, 10:44am » |
Quote Modify
|
Time passes way too fast... Only now have I uploaded a very slightly improved version of the chatroom. Omar will link to it from the Gameroom but it's still experimental. Client side message repetition should not happen again (found a simple solution to the problem) The backslash on arimaa piece symbols was replaced by a colon - I first tried a forward slash à la IRC but they did a mess with image file paths in the formatting algorithm. Animated emoticons are still there - sorry Froody - but they will be replaced by static ones as soon as I can produce free time out of the fabric of space Well, there is still much much work to do on this chatroom, but this time it's easier for everybody to help, because I uploaded the source code with some (insufficient) comments: http://lestrucsaleo.net/arimaa/chatroomtest/dev/ If you feel like testing it before it has a link in the Gameroom, you can do this from the same address as before: http://lestrucsaleo.net/arimaa/chatroomtest Thanks! Don't forget to report bugs before the whole plant explodes
|
|
IP Logged |
|
|
|
clauchau
Forum Guru
bot Quantum Leapfrog's father
Gender:
Posts: 145
|
|
Re: Experimental chat room - call for testers
« Reply #9 on: Mar 6th, 2008, 11:58am » |
Quote Modify
|
Wow, excellent chat appli! Excellent emoticons for the pieces! The colon is a real good choice, very natural considering standard emoticons. I'll see if I can suggest pictures for board squares :a1, :a2, ..., :h8 The source code is so short and the running is so smooth, congrats Leo.
|
|
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Experimental chat room - call for testers
« Reply #10 on: Mar 8th, 2008, 12:25am » |
Quote Modify
|
Thanks Claude By board square pictures do you mean square tiles or the square coordinate notation you suggested some time ago? I read there have been problems in the chat room but I haven't seen them happen live. Could someone who experienced them tell me how it looked like? This chat room doesn't kick people out, but there is a 90 seconds (was 30s on thursday) timeout system to handle people leaving without hitting the log out button. As soon as the client app checks for updates the user is logged in again automatically. The client checks for updates every second (every 10s in stand by mode), and these requests serve also the purpose of a ping system. Logging out by using the log out button sends an explicit log out command to the server, so the user is instantly removed from the user list, no timeout is needed then. In the previous weeks the logout command was automatically sent when the window was closed, but this didn't work on firefox/xp, so I removed it. The temporary server is a shared server with limited capabilities, and this might be a cause for the problems met.
|
« Last Edit: Mar 8th, 2008, 12:25am by leo » |
IP Logged |
|
|
|
Janzert
Forum Guru
Arimaa player #247
Gender:
Posts: 1016
|
|
Re: Experimental chat room - call for testers
« Reply #11 on: Mar 8th, 2008, 9:24am » |
Quote Modify
|
One thing that might help is if the chat client could check to see if the last update request had finished before sending another one off. Watching in firebug I sometimes see 15+ requests waiting to complete and it seems to be after periods like this that the chat server stops responding comepletely for a while. Also it might make sense to make the update rate dynamic. Something like once a second immediately after receiving or sending a message but then gradually slowing down to 5 or 10 seconds if no change has been received in the last 30 minutes. Janzert
|
|
IP Logged |
|
|
|
Janzert
Forum Guru
Arimaa player #247
Gender:
Posts: 1016
|
|
Re: Experimental chat room - call for testers
« Reply #12 on: Mar 8th, 2008, 11:00am » |
Quote Modify
|
I grabbed the source and thought I would try and solve something simple first. So I started with why people timing out instead of explicitly logging out didn't produce a chat message. But now I see that the code is there to do just that but it's been explicitly disabled. Not sure why it was disabled, but maybe now with the longer timeout it could be tried again? Janzert
|
|
IP Logged |
|
|
|
Arimanator
Forum Guru
Arimaa player #1064
Gender:
Posts: 158
|
|
Re: Experimental chat room - call for testers
« Reply #13 on: Mar 8th, 2008, 2:39pm » |
Quote Modify
|
Well, Leo I tried your experimental chat room, but it doesn't work any better than the others for me; I get to a screen with what seems to be an input field, but if I try to write something in it and press enter, I don't get any response at all, same thing if I hit anything resembling a button with my mouse pointer. It's completely inert.
|
|
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Experimental chat room - call for testers
« Reply #14 on: Mar 9th, 2008, 1:16am » |
Quote Modify
|
on Mar 8th, 2008, 9:24am, Janzert wrote:One thing that might help is if the chat client could check to see if the last update request had finished before sending another one off. Watching in firebug I sometimes see 15+ requests waiting to complete and it seems to be after periods like this that the chat server stops responding comepletely for a while. |
| This can be the cause of the problem, since my server is minimal and its response times vary with the load of all the domains share-hosted on it. I decided to go for a simplistic repetition request system first in order to avoid having to deal with lost requests and implement a time out feature to the browser's http request system. But this might be urgently needed now. What is the simplest way to have the simple structure of Javascript to manage all this asynchronous stuff? Launch a one-time delay timer when a request is sent, and have it cancel the request if it wasn't answered? on Mar 8th, 2008, 9:24am, Janzert wrote:Also it might make sense to make the update rate dynamic. Something like once a second immediately after receiving or sending a message but then gradually slowing down to 5 or 10 seconds if no change has been received in the last 30 minutes. |
| Yes, another big thing in the todo list, or the server will collapse under the requests. From our conversation in the chat room yesterday, I gathered you were already testing changes to have dynamic polling period? How are the tests going? on Mar 8th, 2008, 11:00am, Janzert wrote:I grabbed the source and thought I would try and solve something simple first. So I started with why people timing out instead of explicitly logging out didn't produce a chat message. But now I see that the code is there to do just that but it's been explicitly disabled. Not sure why it was disabled, but maybe now with the longer timeout it could be tried again? |
| Actually the reason I suppressed timeout messages from the chat log (only client side) is that they happen late and fall in the middle of the conversations, or, if there has been no user for a while, they fall in just before someone logs in (because the server only reacts to requests, it doesn't run on its own to check who's there and not). I found it more ennoying than informative. Dunno... on Mar 8th, 2008, 2:39pm, Arimanator wrote:Well, Leo I tried your experimental chat room, but it doesn't work any better than the others for me; I get to a screen with what seems to be an input field, but if I try to write something in it and press enter, I don't get any response at all, same thing if I hit anything resembling a button with my mouse pointer. It's completely inert. |
| Maybe your version of IE detects an error in the script and stops executing it, which prevents it from building the page with the options and fetching data from the server. If you have a yellow triangle with a shriek mark in the status bar, could you click on it and tell us what message(s) it reports? Also, which sub-version of IE6 do you have? Someone tested the chatroom OK with IE6, but maybe not your exact same version.
|
|
IP Logged |
|
|
|
|