Hypergrid Friends

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m
(7 intermediate revisions by one user not shown)
Line 11: Line 11:
 
  |-
 
  |-
 
  | Friends.HGStatusNotifier                || None                                                                        || Helps manage HG friend status notifications.
 
  | Friends.HGStatusNotifier                || None                                                                        || Helps manage HG friend status notifications.
 +
|}
 +
 +
== OpenSim.Server.Handlers.Hypergrid ==
 +
 +
These classes are glue code that receive external messages to invoke Hypergrid services.
 +
 +
{| border = "1"
 +
! Class Name                          !! Interfaces/Base classes                !! Description
 +
|-
 +
| HGFriendsServerConnector            || ServiceConnector                      || Instantiates HGFriendsServerPostHandler.
 +
|-
 +
| HGFriendsServerPostHandler          || BaseStreamHandler                      || Receives incoming HG Friends calls and triggers the appropriate HGFriendsService method.
 +
|}
 +
 +
== OpenSim.Services.Connectors ==
 +
 +
{| border = "1"
 +
! Class Name                          !! Interfaces                            !! Description
 +
|-
 +
| Hypergrid.HGFriendsServicesConnector || None                                  || Connector to a foreign Friends service.
 
  |}
 
  |}
  
Line 21: Line 41:
 
  |}
 
  |}
  
= Random Notes =
+
= Flows =
When  
+
== Offering a friendship when on a foreign grid to an avatar local to that grid ==
 +
 
 +
# On making a friend request, the requester's client sends a FriendshipOffered IM to the current foreign simulator.
 +
# The foreign simulator forwards this request to the friendee.  If the friendee is elsewhere on the grid, then the message is forwarded to the simulator they are on.
 +
# The friendee sees the request.  If they are offline and IMs are being stored, they will see this when they next log back on.
 +
# If the friendee accepts, then their client sends a AcceptFriendship UDP message to their current simulator.
 +
# The foreign simulator stores the friendship information in its grid.
 +
# The friendship information is forwarded on to the friendees HGFriendsService with the newfriendship message.
 +
# The home HGFriendsService stores the friend request for confirmation.
 +
# When the friender returns to the home grid, they are asked to confirm the friendship that they made whilst in the foreign simulator.  This triggers the "Please confirm this friendship you made while you were away." which originates from HGFriendsModule.FriendshipMessages().
 +
# If the friender confirms the friendship then it is stored on their grid.
 +
# If the friender denies the confirmation then the firnedship is not stored and the foreign HGFriendsService is asked to remove the friendship.
 +
 
 +
 
  
# Offering a friendship whilst on another grid to an avatar of that grid.
+
[[Category:Hypergrid]]
# Returning to home grid, the "Please confirm this friendship you made while you were away." message originates from HGFriendsModule.FriendshipMessages.  Is it only griggered if the friend ID is not a UUID.
+

Revision as of 18:13, 24 October 2015

Sorry, page under constructions. At the moment just some notes on how friends work over the Hypergrid -- Justincc (talk) 23:46, 7 January 2015 (UTC)

Contents

Class Summary

OpenSim.Region.CoreModules.Avatar

Class Name Interfaces Description
Friends.HGFriendsModule IFriendsModule, IFriendsSimConnector, ISharedRegionModule Extends and replaces FriendsModule. Accessed via Scene.RequestModuleInterface<IFriendsModule>() and Scene.RequestModuleInterface<IFriendsSimConnector>(). Performs HG specific friend functions such as forwarding friendship requests and caching.
Friends.HGStatusNotifier None Helps manage HG friend status notifications.

OpenSim.Server.Handlers.Hypergrid

These classes are glue code that receive external messages to invoke Hypergrid services.

Class Name Interfaces/Base classes Description
HGFriendsServerConnector ServiceConnector Instantiates HGFriendsServerPostHandler.
HGFriendsServerPostHandler BaseStreamHandler Receives incoming HG Friends calls and triggers the appropriate HGFriendsService method.

OpenSim.Services.Connectors

Class Name Interfaces Description
Hypergrid.HGFriendsServicesConnector None Connector to a foreign Friends service.

OpenSim.Services.HypergridService

Class Name Interfaces Description
HGFriendsService IHGFriendsService Provides the friends service accessed by foreign grids.

Flows

Offering a friendship when on a foreign grid to an avatar local to that grid

  1. On making a friend request, the requester's client sends a FriendshipOffered IM to the current foreign simulator.
  2. The foreign simulator forwards this request to the friendee. If the friendee is elsewhere on the grid, then the message is forwarded to the simulator they are on.
  3. The friendee sees the request. If they are offline and IMs are being stored, they will see this when they next log back on.
  4. If the friendee accepts, then their client sends a AcceptFriendship UDP message to their current simulator.
  5. The foreign simulator stores the friendship information in its grid.
  6. The friendship information is forwarded on to the friendees HGFriendsService with the newfriendship message.
  7. The home HGFriendsService stores the friend request for confirmation.
  8. When the friender returns to the home grid, they are asked to confirm the friendship that they made whilst in the foreign simulator. This triggers the "Please confirm this friendship you made while you were away." which originates from HGFriendsModule.FriendshipMessages().
  9. If the friender confirms the friendship then it is stored on their grid.
  10. If the friender denies the confirmation then the firnedship is not stored and the foreign HGFriendsService is asked to remove the friendship.
Personal tools
General
About This Wiki