Protocols/MSNP/Activities/SDK/Techref/Developing/Devmulti

From NINA Wiki
Revision as of 22:45, 12 August 2022 by Animadoria (talk | contribs) (Created automatically by Anima Importer)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


MSNP Protocol
Activity SDK
Introduction to the MSN Messenger Activity API
Key Requirements for a MSN Messenger Activity
Introduction to MSN Messenger Activity API
Overview of MSN Messenger Activity API
Activities Menu
System Requirements
Standard vs. Advanced Applications
Supported Countries and Languages
MSN Messenger Activity API Support
Copyright Information
Glossary
MSN Messenger Activity API Process
MSN Messenger Activity Process Overview
Supporting Documentation
Requesting Usage of Special Permissions
Submitting Pre-compliance Testing Results
MSN Requirements for Developing an Activity API Application
Additional Activity API Application Development Requirements
Selecting Development Options
Activity API Restrictions
Developing a MSN Messenger Activity
Development Considerations
Getting Started
Required Definitions
Document Body Basics
Single-User Application
Multiuser Application
Designing MSN Messenger Activity Graphics
Testing an Activity
Testing Overview
The Local XML File
Test Environment Setup
Increasing MSN Messenger Activity Usage
Understanding How to Increase Activity Usage with MSN
Design Considerations for Increased Activity Usage
Calling the MSN Messenger Client Directly
Calling the MSN Messenger Client from a URL
Using the MSN Messenger Variables
Technical Reference
Obtaining Access to Restricted Features
Permission Flags
ActiveX Flag
EnableIP Flag
PassportSiteID Flag
ReceiveIM Flag
ReplaceIM Flag
SendFile Flag
SendIM Flag
UserProperties Flag
The Activity Object Model
Enumerations
ConnectionType Enumeration
FileStatus Enumeration
Methods
CloseApp Method
Objects
Channel Object
Events
OnAppClose Event
OnDataError Event
OnDataReceived Event
OnFileProgress Event (Restricted)
OnFileReceived Event (Restricted)
OnIMReceived Event (Restricted)
OnRemoteAppClosed Event
OnRemoteAppLoaded Event
OnSendFileCancelled Event (Restricted)
OnTypeChanged Event
Methods
CancelSendFile Method (Restricted)
EnterIM Method (Restricted)
Initialize Method
SendData Method
SendFile Method (Restricted)
SendIM Method (Restricted)
SendIMAsUser Method (Restricted)
Properties
Data Property
Error Property
FileInfo Property (Restricted)
Type Property
IM (read-only) Property (Restricted)
IM (read-write) Property (Restricted)
Error Object
Type Property
Data Property
FileInfo Object
Path Property
Size Property
Progress Property
Incoming Property
Status Property
Messenger Object
Options Method
Phone Method
User Object
EMail Property (Restricted)
GlobalIP Property (Restricted)
LocalIP Property (Restricted)
Name Property (Restricted)
PUID Property (Restricted)
Users Collection
Item Method
_NewEnum Method
Count Property
Me Property
Inviter Property
Overview
IntroductionTermsClients
Reference
Error ListCommandsRelying Party SuiteSpotlife
Services
XMPPHTTP GatewayTabsActivities
Documentation
Development ToolsMSNP Grid
PolygamyURLs used by MSN
Documents
Protocol Versions
Version 21
Version 18
Version 16
Version 15
Version 14
Version 13
Version 12
Version 11
Version 9
Version 8
Version 2
MSNC
IntroductionP2PObject DescriptorDisplay PicturesFile Transfer
Scenarios
Microsoft Messenger for Mac
MSNP on WebTV (MSNTV)

Multiuser Application

A multiuser application requires synchronization between two clients and must use event handlers to react to connection- and data-related events.

The following processes make up the foundation of a multiuser MSN® Messenger Activity:

  • Synchronizing
  • Sending and receiving data
  • Error handling


Synchronizing

After an invitation to run an Activity has been sent and accepted, both Messenger clients load the application. The application that loads first must wait until the other application sends the signal that it is ready to communicate.

Here is an example order of events:

The first application to load calls Channel.Initialize, and then waits for the event Channel.OnRemoteAppLoaded to fire. The second application calls Channel.Initialize when it is ready to communicate, and the event Channel.OnRemoteAppLoaded fires immediately.

If the remote user cannot load the application, then the event Channel.OnRemoteAppLoaded will never fire back to the first application. You can set a timer to display a message after a certain interval, so the application does not appear to be frozen.

When a computer's Internet security level is set to High, scripting is disabled, and MSN Messenger Activities will not run.

Sending and Receiving Data

The primary way to send information is by the method Channel.SendData. An application must have an event handler called Channel.OnDataReceived; this event fires when the application receives data.

The methods Channel.SendIM and Channel.SendIMAsUser can be used to send instant messages. If used, the application must also have an event handler for Channel.OnIMReceived.

The method Channel.SendFile can be used to transfer files. If used, the application must also have an event handler for Channel.OnFileReceived.

Special permissions are required for using the instant message and file transfer features. For more information on permissions, see Standard vs. Advanced Applications.

An application should have an event handler called Channel.OnRemoteAppClosed. After this event fires, the connection is closed. Any method that tries to send data to a closed connection will throw an exception.

Error Handling

An application should have an event handler for Channel.OnDataError. This event fires if Channel.SendData fails. Channel.OnDataError contains variables that, if used, display the type of error and provide a copy of the data. Typically, an application should try to send the data again, in case the error was an isolated communication problem.

Applications should also employ other error handling techniques, such as wrapping any method that sends instant messages in an error handling block. These could include a try-catch block in JavaScript or an ON ERROR GOTO statement in Microsoft® Visual Basic® Scripting Edition (VBScript).