Panda Cometd client

Hi All

Cometd is a publisher subscriber networking API that runs via http. You can read about it here cometdproject.dojotoolkit.org/

I’ve written a basic cometd client using the nice http features built into the latest version of Panda. I’ve tested it against the cometd examples that come with the Jetty java server from mortbay.org/jetty/

Because it uses http for transport it’s ideal where clients may be inside a secure network. E.g. if your writing a multi-user simulation for use within the school environment. It’s not suitable for low latency applications.

You can download it from here users.on.net/~stephenbrain/cometd.zip.

Read example.py for usage.

Only cometclient.py and example.py are mine and you can use them any way you want. The rest of the code is copyrighted to their respective authors.

All feedback greatfully accepted.

Brains

It looks like this is a json over HTTP protocol but how is it related to 3d? Could you list examples of its use?

Sorry for the delay in getting back to you.

You’re right that Cometd is a json over http protocol. This makes it unsuitable for low latency applications as it’s sending a lot more data than it needs to and is making TCP connections instead of sending UDP datagrams.

It’s advantages are

  1. It uses a publisher/subscriber model so any client code you write can be fairly simple. The server (such as jetty) does most of the heavy lifting.

  2. It’ll work in a secure environment such as a school where all PC’s are forced to use a proxy server for http traffic and almost all ports are blocked by the firewall.

So you were designing a multi-user 3d walkthrough or eductional game for school children which needed to be accessed by students from different schools then cometd would be a good choice as the advantages of working via http through a proxy outway the latency issues.

You could also consider using cometd for a multiplayer 3d chess game where latency isn’t an issue.

Hope this helps

Brains