Hi all, I'd like to contribute to apache wave, in particular in the c/s protocol area, my ideal goal (in wave terms) is to make a working c/s protocol and an android API that could later be used to build any kind of wave clients. (because my general goal, outside of wave scope, is to have a special purpose android client)
First of all i have to say that neither websockets nor client server communication is my area of expertise, so i'm sure i'll encounter a lot of troubles and will need your help various times. In fact this is my first call for help. please bear with me... So far i've read (hopefully) all the docs i've found on the net, spread between waveprotocol.org and incubator.apache.org and yet i don't have a clear idea on the current state of wave in regard to the c/s protocol. For what i understood, there are 4 ways to talk to wave right now. 1 wave api 2 servlets 3 socket.io 4 websockets 1 is an heritage of the past and will be or is already discontinued, 2 is mostly a hack to enable caching on the webclient, 3 is the way used by the webclient, 4 should be the "right" way but it's mostly experimental (i guess because of the immaturity of the ws standard). is all this right? if yes, then the right way to implement the c/s protocol is via websockets and using this document [1] as a guidance, right? in this regard i've already started to experiment a bit. i'm using this websocket implementation [2] on the android phone to connect to the wave server, without success to far. First of all, i couldn't figure out what version of the draft for ws is wave using atm, secondly, when i try to connect (no matter the version i'm using) i get a 302 response. For what i could understand, 302 means the resource has been moved and a redirect will happen, but this doesn't make sense to me in the case of websockets. On the server side of things, i've hooked up the debugger to the wave server and put some breakpoints here and there, but none is ever triggered, so either i'm after the wrong classes or the server isn't getting any request at all. is there any kind of authentication i have to go through before i can send messages to the server? or is the authentication itself done with messages? All i could find was this doc [3] but it describes only the webcliant authentication via jaas and i guess that doesn't apply to websockets... so to recap, here's a list of questions that i hope will help me tackle this problem from the right angle: - which is the right way to communicate with a wave server? (my guess is websocket) - which ws standard draft if wave using atm? (my guess is [4]) - is the websocket lib i've choosen good for the client, or am i forced to use jetty as wave seems to use that particular one? (my guess is that the lib is ok) - is authentication required with ws? what kind of auth is used? - from which class in the wave server should i start looking in order to get an idea of what's going on? (my guess is WaveWebSocketServerChannel.java) - from a talk in the wave summit i understood there was an eclipse preference file with code style and other useful stuffs, but i can't seems to find it, is it still true? any kind of help is much appreciated, including ideas, thoughts and pointers to documentation i might have missed. Thanks everybody for reading this very long mail and happy new year! =) Davide [1] http://www.waveprotocol.org/protocol/design-proposals/clientserver-protocol [2] https://github.com/TooTallNate/Java-WebSocket [3] http://www.waveprotocol.org/protocol/design-proposals/authentication [4] http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10