次の方法で共有


マルチユーザー アプリケーション

マルチユーザー アプリケーションには 2 つのクライアント間の同期が必要で、接続関連およびデータ関連のイベントに対応するイベント ハンドラを使用しなければなりません。

マルチユーザー用 Windows Live Messenger アプリの基礎を構成するプロセスは次のとおりです。

  • 同期
  • データの送受信
  • エラー処理

同期

アプリを実行するための招待が送信され、承諾された後、双方の Messenger クライアントがアプリケーションをロードします。先にロードされたアプリケーションは、通信可能状態になったことを知らせる通知がもう一方のアプリケーションから送信されるまで、待機する必要があります。

次に示すのは、イベントの発生順の例です。

最初にロードされたアプリケーションは、Channel.Initialize を呼び出し、Channel.OnRemoteAppLoaded イベントが発生するのを待機します。2 番目にロードされたアプリケーションは、通信可能状態になったら Channel.Initialize を呼び出します。すると直ちにChannel.OnRemoteAppLoaded イベントが発生します。

リモート ユーザーがアプリケーションをロードできない場合、最初にロードされたアプリケーションでは Channel.OnRemoteAppLoaded イベントが発生しません。一定間隔でメッセージを表示するタイマーを設定すると、アプリケーションがフリーズしていると誤解されないようにすることができます。

コンピュータのインターネット セキュリティ レベルが "高" に設定されている場合、スクリプトは無効になり、Windows Live Messenger アプリは実行されません。

データの送受信

情報を送信する主な方法は、Channel.SendData メソッドを使用することです。アプリケーションには Channel.OnDataReceived の発生時に呼び出されるイベント ハンドラが必要です。このイベントは、アプリケーションがデータを受信したときに発生します。

インスタント メッセージの送信には、Channel.SendIM および Channel.SendIMAsUser メソッドを使用します。この場合、アプリケーションには Channel.OnIMReceived に対応するイベント ハンドラも必要になります。

ファイルの転送には、Channel.SendFile メソッドを使用します。この場合、アプリケーションには Channel.OnFileReceived というイベント ハンドラも必要になります。

インスタント メッセージやファイル転送の機能を使用するには特別な許可が必要です。許可の詳細については、「標準的なアプリケーションと高度なアプリケーション」を参照してください。

アプリケーションには Channel.OnRemoteAppClosed の発生時に呼び出されるイベント ハンドラが必要です。このイベントの発生後、接続は閉じられます。閉じられた接続に対していずれかのメソッドがデータを送信しようとすると、例外がスローされます。

エラー処理

アプリケーションには Channel.OnDataError に対応するイベント ハンドラが必要です。このイベントは、Channel.SendData が失敗した場合に発生します。Channel.OnDataError はいくつかのプロパティと関係します。これらを使用して、エラーの種類を表示したりデータのコピーを取得したりできます。通常、エラーの原因が通信遮断の問題である場合には、アプリケーションでデータ送信を再試行する必要があります。

アプリケーションには、エラー処理ブロック内にインスタント メッセージを送信するメソッドをラップするなどの、その他のエラー処理手法も実装する必要があります。これには、JavaScript の try-catch ブロックや、Microsoft Visual Basic Scripting Edition (VBScript) の ON ERROR GOTO ステートメントなどがあります。

関連項目

概念

必須定義