Virtual-Presence.org

ROCKETON

02.06.2008

ROCKETON recently started the alpha phase of their virtual presence client. I am very excited about this system, because it seems to be a fully featured virtual presence system. Fully featured is almost too weak. In addition to the usual "chat with avatars on any web pages", it has public chat, a buddy list, items, a shop, avatar customization, worm holes, interactive items, and probably much more.

ROCKETON Inc. is a San Francisco based company. The team seems to be very strong. They have experience lots of in the gaming industry and where responsible for major game titles. The company is quite well equipped with at least 5 Mio US $.

The client is in Flash 9. It produces a small icon in the lower right corner. Once you activate it it opens a flash based tool bar at the lower border of the browser. Activating it on a page also shows your and other people's avatars.

The flash is a layer above the web site. You can not click the page content while it is active. Rather, clicking directs the avatar to go to the position. Avatars walk over the entire page and beyond. The display always tries to keep my avatar on the screen by scrolling the scene. Other avatars are shown by small circles at the web page border to indicate that they are off the visible area, nice concept.

The protocol is straight forward. It uses a Comet style long-polling to keep a connection always open which the server can use to send a message to a client. Definitely the way to go in an HTTP environment. If you can sustain thousands of TCP connections on the server. I suppose they can. At least it's not a prefork-apache.

If I chat a small text, then I see a HTTP POST (formatted and stripped down to the important stuff) with HTML form data:

  POST /chat-web/chat?Chat HTTP/1.1
Host: chat.rocketon.com
Cookie: JSESSIONID=xxxxxxxx
Content-Type: application/x-www-form-urlencoded
Content-Length: 86
GZeNqzSc7JTM0riS8oyi/JT87PseNSULBJzkgssbNRjHZ2cQxxjE7LLCouUQCJxcba2eiDJbmANJpGAL2cGcs=

The chat text seems to be encrypted. It is not just base64 encoded as the trailing "=" suggests. (OK, you got me). I get a response immediately, which has the text I just typed and my position. This probably also goes to all other people on the page at the same time. The message is delivered as a HTTP response to an open request with XML body.

  HTTP/1.1 200 OK
  Content-Type: text/xml; charset=iso-8859-1
Content-Length: 281
Server: Jetty(6.1.9)
<?xml version="1.0" encoding="UTF-8"?>
<events>
<event type="message" room_name="www.google.com">
<member username="Wolfspelz" uid="107511" x="176" y="619" /> <message>GZeNqzSc7JTM0riS8oyi/JT87PseNSULBJzkgssbNRjHZ2cQxxjE7LLCouUQCJxcba2eiDJbmANJpGAL2cGcs=</message>
</event>
</events>
The client immediately opens the next long-poll request:
  GET /chat-web/chat HTTP/1.1
Host: chat.rocketon.com
Connection: Keep-Alive
Cookie: JSESSIONID=xxxxxxxx

No I walk and my client sends the final position, no intermediate positions:

  POST /chat-web/member HTTP/1.1
Host: chat.rocketon.com
Connection: Keep-Alive
Cookie: JSESSIONID=xxxxxxxx
x-method: PUT
Content-Type: application/x-www-form-urlencoded
Content-Length: 11
x=647&y=528

As expected I get a message as a long-poll response:

  HTTP/1.1 200 OK
Content-Type: text/xml; charset=iso-8859-1
Content-Length: 188
Server: Jetty(6.1.9)
<?xml version="1.0" encoding="UTF-8"?>
<events>
<event type="room" room_name="www.google.com" action="moved">
<member username="Wolfspelz" uid="107511" x="647" y="528" />
</event>
</events>

And then the obligatory long-poll request to set things up for the next seerver to client message:

  GET /chat-web/chat HTTP/1.1
Host: chat.rocketon.com
Connection: Keep-Alive
Cookie: JSESSIONID=xxxxxxxx

I wish they would use location mapping and an existing chat protocol. But you can't have it all.

I wonder why ROCKETON requires to open Port 843 outgoing. That's clearly the Flash player 9 policy file download. But they do HTTP long-polling and they install as a browser helper. Why do they still need the flash policy. The flash policy is for socket connections. They should be able to do without by loading everything via the browser's HTTP client or by using a custom HTTP client. Images and everything visible is usually HTTP. The chat protocol also as described above. No idea yet why they need flash socket connections in addition to HTTP.

So much for now.

Links:

http://www.techcrunch.com/2008/02/11/rocketon-gets-5-m-for-embeddable-virtual-kids-world/

http://www.rocketon.com/

http://www.rocketon.com/a/

 

 

Imprint | Contact © Heiner Wolf, 2005