ChannelListen
ChannelListen[channel]
指定のチャネルを聞き始める.
ChannelListen[channel,func]
チャネルで受信した各メッセージに対応する連想に func を適用する.
ChannelListen[channel,None]
チャネルで受信した各メッセージを,いかなる関数も適用せずに保存する.
ChannelListen[url]
チャネルブローカ上に明示的なチャネルの存在を要求せずに,指定されたURLを聞き,受信したメッセージをソートする.
詳細とオプション
- ChannelListen[…]はChannelListenerオブジェクトを与える.
- ChannelListen[channel,…]では,channel はチャネルオブジェクトとして,あるいはChannelObject内で使われている任意の形で指定することができる.
- ChannelListen[channel]はChannelListen[channel,Automatic]に等しい.
- func は,ChannelListen[channel,func]内で指定された場合は channel の"MessageReceived"ハンドラを無効にする.channel は次の要素を含む連想によって呼ばれる.
-
"Message" メッセージのコンテンツ "MessageID" 一意のメッセージID "Timestamp" メッセージについてのサーバタイムスタンプ "RequesterWolframID" 送信者のWolfram ID "RequesterWolframUUID" 送信者のWolfram UUID "ListenerID" 現行リスナのID - メッセージのコンテンツは,メッセージが文字列,Real,Integer,ByteArray,True,False,Null,Image,Image3D,あるいはそのようなオブジェクトのリストまたは連想の場合は,文字通りに与えられる.その他のメッセージはすべてHoldComplete[DisableFormatting[expr]]形式か"name"DisableFormatting[val]の形の遅延規則のリストか連想としてで与えられる.
- セキュリティのために,ホールドされた式の一部や遅延規則の右辺,あるいは文字列メッセージにToExpressionを適用する等の未評価のメッセージの内容には注意してアクセスすべきである.
- ChannelListenには次のオプションが使える.
-
AutoRemove False メッセージを1つ受信した後でリスナを削除するかどうか ChannelBase $ChannelBase 仮定するデフォルトのチャネルベース ChannelHistoryLength 100 リスナのキャッシュにいくつのメッセージを保存するか NotificationFunction Inherited メッセージが届いた際に与える通知 - ChannelListenが設定したチャネルリスナはRemoveChannelListenerで削除することができる.
- チャネルリスナを削除するとリスナがキャッシュしたメッセージも破棄される.
- Wolfram言語セッションを終了するとアクティブなチャネルリスナが削除される.
例題
すべて開くすべて閉じる例 (2)
チャネルにメッセージを送り,リスナからメッセージのコンテンツを取り出す:
メッセージが到着すると実行されるカスタムハンドラ関数を定義する:
メッセージはChannelListenerオブジェクトにも記録される:
スコープ (4)
チャネル指定 (2)
ChannelObjectで定義されたチャネルを聞く:
オプション (3)
ChannelHistoryLength (1)
ChannelHistoryLengthを10に設定してチャネルリスナを作成する:
アプリケーション (4)
電子メール (1)
デスクトップセッションで受信したメッセージの件名を読み上げるリスナを設定する:
受信したメールを自分のリスナに転送するMailReceiverFunctionを作る:
リモート評価 (1)
Wolfram Cloud (1)
ChannelListenを使うと現行のセッションでAPIFunction,FormFunction,あるいはその他の関数がWolfram Cloudで実行された際に,アップデートが受信できる:
ソーシャルメディア (1)
HTTPリクエストのコンテンツをチャネルに転送するAPIFunctionを作る:
Twitter上の「Mathematica」という単語への言及を追跡して,これをHTTPを介してAPIFunctionに送信するIFTTTアプレットを作る:
特性と関係 (3)
ChannelListenはChannelListenerオブジェクトを返す:
RemoveChannelListenerを使ってChannelListenerオブジェクトを取り除く:
デスクトップのWolframシステムでは,メッセージハンドラ関数内で実行されたPrintの出力は,メッセージウィンドウに表示される:
考えられる問題 (1)
テキスト
Wolfram Research (2016), ChannelListen, Wolfram言語関数, https://reference.wolfram.com/language/ref/ChannelListen.html (2020年に更新).
CMS
Wolfram Language. 2016. "ChannelListen." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/ChannelListen.html.
APA
Wolfram Language. (2016). ChannelListen. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ChannelListen.html