IntroductionWe will support P2P applications in v3 - P2PObjectTransferApplication (Display picture, Emoticon etc.)
- P2PFileTransferApplication (File transfer)
- P2PWebCamApplication (Video chat)
- P2PActivity (Games)
FooGame ApplicationFirst, 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)
{
}
|
i still dont get how i for exemple openup google.com as activity...