[Opensim-dev] Proposal: notify clients when Robust changes a user's inventory

Diva Canto diva at metaverseink.com
Fri Mar 14 00:32:48 UTC 2014


+1 for the feature.
As for the implementation, I concur with what Melanie says. We decided 
at some point not to use IM as the form of communication between 
server-side components. I can't remember all the technical details that 
led to that decision, but it had to do with the IM protocol already 
being way too hairy.

In this particular case, it may be justified, and possibly the simplest 
thing to do, since, indeed, the IM service is already doing all the 
hairy logic for finding out where the user is... So I'm not against it 
either. Let's just not abuse IM server-side, and let's question every 
situation that might need it.


On 3/13/2014 12:55 PM, Melanie wrote:
> In the past we have studiously acoided abusing thr instant message protocol as a message transport.
> The Linden protocols use the InstantMessageDialog for similar purposes, but way back when it was decided to not make the same mistake.
> So while notifying the client of such inventory changes is a good idea, using instant messages as the protocol may not be agreeable to all.
> Personally, I'm not opposed to it.
>
> Melanie
>
> On 13 Mar 2014, at 18:16, Oren Hurvitz <orenh at kitely.com> wrote:
>
> Sometimes Robust makes changes to a user's inventory on its own initiative
> (i.e., not as the result of a client request). E.g., this happens when it
> creates the "My Suitcase" folder. When that happens we should notify the
> client, so that the new item or folder will be visible in the inventory
> window immediately. Otherwise the user won't be able to see the changes
> until they restart the client, which is confusing and frustrating.
>
> I want to use the existing IM service to do this, since it already has 95%
> of the necessary code. It already has services in place for Robust to find
> which region the user is in, and send a message to that simulator. It can
> even do this if the user is in a different grid.
>
> My proposal is to define a special format of GridInstantMessage, which tells
> the simulator to send SendBulkUpdateInventory() to the client. The data
> about which specific folder/item were added will be encoded in the field
> 'binaryBucket'. OpenSim will recognize this new type of message, and call
> client.SendBulkUpdateInventory().
>
> This mechanism will work cleanly with older simulators: I'll remove a key
> field from GridInstantMessage, e.g. 'from_agent_id', and this will cause old
> simulators to ignore the message. This can be seen in
> MessageTransferModule.processXMLRPCGridInstantMessage(): the removal of a
> required field causes the simulator to ignore the message. Only new
> simulators will recognize and handle this new type of message.
>
> Any comments or objections? Is there a simpler way to do this?
>
> Oren
>
>
>
> --
> View this message in context: http://opensim-dev.2196679.n2.nabble.com/Proposal-notify-clients-when-Robust-changes-a-user-s-inventory-tp7579018.html
> Sent from the opensim-dev mailing list archive at Nabble.com.
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
>




More information about the Opensim-dev mailing list