Graph Chat

To Build: run "nmake" or launch the .sln file in Visual Studio .Net


Using the Graph Chat Sample Application:

The Graph Chat Sample Application demonstrates how to create a chat application based on the Peer-to-Peer Graphing and Peer Name Resolution Protocol (PNRP) Name Space Provider API.  In order to use Graph Chat the following steps must be followed:

1. Create a graph to host the chat application
In order to chat among peers, one peer must create the graph.  To create a graph, the user must select the "New Graph..." menu item. The user will then be prompted with a dialog requesting a "CreatorID".  This ID will be used in the Graph Properties, and as the user ID of the individual in the chat. 

After the user has created a graph, the graph ID is displayed in the main chat window.  This graph ID will be what a remote peer uses to open the graph (see step 2).  In addition, this particular graph endpoint is registered in PNRP for the duration of the application lifetime.

2. Open and connect to a graph to chat
Once a graph is created, other peers can open the graph to start chatting.  In order to open an existing graph, select the "Open Graph...". menu item. The user will be prompted with a dialog requesting a Peer ID and Graph ID.  The PeerID will identify the individual in the graph.  The Graph ID is the identifier of the graph to connect to (ex. the identifier displayed in the main chat window from step 1).

Once the user chooses to open the graph, the application tries to resolve the Graph ID to an endpoint via PNRP.  If a peer publishing an instance of the graph is discovered, the graph connects, synchronizes, and the user is now able to chat.

It is important to note, that once a peer has connected and synchronized with a graph, it is registered in PNRP as a possible graph endpoint.

3. Whispering to other peers
To carry on a private conversation with another peer, simply double-click that member in the 'Chat Members' list.  The following dialog will allow the user to send a "whisper" message to the selected peer.