On Wed, May 12, 2010 at 10:02 PM, Joseph Gentle <[email protected]> wrote: > Right - so change it to something like this then? > > // In waveclient-rpc.proto > message WebSocketRPCMessage { > required uint32 version = 1; > required uint64 sequence_number = 2; > required string message_type = 3; // We wouldn't actually need this > anymore... > > // At least one of these must be set > optional ProtocolOpenRequest open_request = 10; > optional ProtocolWaveletUpdate wavelet_update = 11; > optional ProtocolSubmitRequest submit_request = 12; > optional ProtocolSubmitResponse submit_response = 13; > // .... more added later? > } > > > ... And pretty printed, the JSON message looks like this: > { > "1":0, > "2":1, > "3":"webserver.ProtocolOpenRequest", > "10": > { > "1":"[email protected]", > "2":indexwave!indexwave", > "3":[""] > } > }
That's unreadable. Please stick to using key names in the JSON. -joe > > Doing that trick with a series of optional message types can make > parsing faster than if you send the type as another string. (You can > be sure you'll always have parsed the key before the message, so you > know the message's type. That lets you read it directly without using > intermediate representations.) > > -Joseph > > > On Thu, May 13, 2010 at 9:28 AM, J.D. Zamfirescu <[email protected]> wrote: >> Hey! >> >> That would be great. In fact, what we want to do is further use the >> protobuf indexes instead of the key names. If you can pull this off on >> the client and server that would also be excellent. >> >> And, yes, a version number bump would be great, and we are working on >> client-side websocket stuff but we need to do this anyway. :) >> >> Thanks! >> >> J.D. >> >> >> On Wed, May 12, 2010 at 6:06 PM, Joseph Gentle <[email protected]> wrote: >>> There's a couple changes I'd like to make to the fedone websocket >>> message protocol: >>> - The JSON currently has inconsistent naming conventions >>> (sequenceNumber vs participant_id - see below) >>> - WebSocketChannel.MessageWrapper should embed the message as a JSON >>> object, not a JSON object encoded inside a string. (The latter is >>> sloppy to send and use). >>> >>> Currently messages look like this: >>> { >>> "version":0, >>> "sequenceNumber":1, >>> "messageType":"waveserver.ProtocolOpenRequest", >>> "messageJson": "{ >>> \"participant_id\": \"[email protected]\",\"wave_id\": >>> \"indexwave!indexwave\",\"wavelet_id_prefix\": [\"\"]}" >>> } >>> >>> ... I'd like to change it to this: >>> { >>> "version":0, >>> "sequence_number":1, >>> "message_type":"webserver.ProtocolOpenRequest", >>> "message": >>> { >>> "participant_id":"[email protected]", >>> "wave_id":indexwave!indexwave", >>> "wavelet_id_prefix":[""] >>> } >>> } >>> >>> Questions: >>> - Should I just write & submit a patch? Who should I send it to? >>> - Should I bump the protocol version number for a change like this? >>> - How many people are effected by changes like this? (Are many people >>> working on client code using websockets?) >>> >>> Cheers >>> Joseph >>> >> > > -- > You received this message because you are subscribed to the Google Groups > "Wave Protocol" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/wave-protocol?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.
