registration and declarations to the hub in a single atomic operation

Thomas Boch boch at newb6.u-strasbg.fr
Thu Feb 12 09:33:45 PST 2009


Hi Yohann,

I'll just reply from a standard point of view, and will let Mark reply 
on the JSAMP implementation details.
> I just wanted to expose my point of view concerning the way by which 
> JSAMP clients register them and declare their metadatas and 
> subscriptions.

I think JSAMP API just follows the SAMP protocol API, where 
registration, declaration of callback information, declaration of 
metadata, and declaration of supported messages are different steps.
In PLASTIC, we had a single call, and we splitted it in 4 steps on 
purpose. A client might want to update its metadata and/or the messages 
it supports according to the current list of subscribed clients, or to 
adapt to some messages he had to process, etc.
> 1) a more simple way to register a client: 1 method instead of 4 for now.
>
> something like
>    hubConnection = clientProfile.registerCallableClient(this, 
> metadatas, subscriptions);
>
> instead of
>    hubConnection = clientProfile.register();
>    hubConnection.setCallable(this);
>    hubConnection.declareMetadata(metadata);                   
> hubConnection.declareSubscriptions(subscriptions);
>
> (and if a client needs to change its metadatas or subscriptions?... 2 
> solutions:
>    - unregister, then register again (a client with new informations 
> can be considered as a new client)

I think I don't like this idea very much. First, it does not match with 
the agreed SAMP abstract API. Secondly, imagine that client A is 
interacting with client B. If client B decides for any reason to change 
its metadata, it means it unregisters and registers again, and client A 
has no way to know that the newly registered client is actually the 
former client B he was interacting with.

>    - create new "updateMetadatas(Metadatas metadatas)" and 
> "updateSubscriptions(Subcriptions subscriptions)" methods.
> )  
>

Unless I miss something, that's exactly the role of the existing 
declareMetadata and declareSubscriptions method !

Cheers,

Thomas




More information about the apps-samp mailing list