My favorites | Sign in
Logo
Project hosting will be READ-ONLY Wednesday at 8am PST due to brief network maintenance.
                
Search
for
Updated Jun 02, 2009 by hephappy
P2PApplication  
P2P Application (Draft)

Introduction

We will support P2P applications in v3

FooGame Application

First, design a class extends P2PApplication. Pass your App-GUID and App-ID to P2PApplicationAttribute.

[P2PApplication(APP_ID, "APP-GUID")]
public class FooGameApplication : P2PApplication
{
}

Register your class.

P2PApplication.AddApplication(Assembly assembly); // All applications in your dll
P2PApplication.AddApplication(typeof(FooGameApplication)); // One type

Override properties and methods.

public override string InvitationContext
{
    get
    {
        string activityUrl = AppID + ";1;FooGame";
        byte[] contextData = System.Text.UnicodeEncoding.Unicode.GetBytes(activityUrl);
        return Convert.ToBase64String(contextData, 0, contextData.Length);
    }
}

public override bool AutoAccept
{
    get
    {
        return true;
    }
}


public override bool ValidateInvitation(SLPMessage invitation)
{
    return base.ValidateInvitation(invitation);
}


public override void HandleMessage(IMessageProcessor sender, P2PMessage p2pMessage)
{
    // Handle p2pMessage
    string incomingXml = Encoding.UTF8.GetString(p2pMessage.InnerBody);

    // And send the data
    P2PDataMessage p2pData = new P2PDataMessage();
    p2pData.InnerBody = data; // xml data
    SendMessage(p2pData);
}

Constructors

// We have received an invitation
public P2PObjectTransferApplication(P2PSession session)
    : base(session)
{
    SLPMessage slp = session.Invite;
}

// We are initializer 
public P2PObjectTransferApplication(Contact remote)
    : base(contact)
{
}

Comment by WendellMisiedjan, Sep 19, 2009

i still dont get how i for exemple openup google.com as activity...


Sign in to add a comment
Hosted by Google Code