ChannelListenによって作成されたチャネルリスナを表す.
ChannelListener
ChannelListenによって作成されたチャネルリスナを表す.
詳細
- ChannelListener[…]["prop"]はチャネルリスナの prop を与える.
- ChannelListener[…]["prop",n]は,直近の n 個のメッセージの特性リストを与える.
- ChannelListener[…]["prop",All]は保存されている全メッセージの特性リストを与える.
- ChannelListener[…][{"prop1","prop2",…},…]は propiの結果のリストを与える.
- 個々のメッセージに関係する可能な特性
-
"Message" メッセージの内容 "MetaInformation" メッセージに付属するメタ情報 "FullMessage" メッセージとメタ情報 "MessageID" メッセージID "Timestamp" メッセージのサーバタイムスタンプ "RequesterWolframID" 送信者のWolfram ID "RequesterWolframUUID" 送信者のWolfram UUID - メッセージのコンテンツは,メッセージが文字列,Real,Integer,ByteArray,True,False,Null,Image,Image3D,あるいはそれらオブジェクトのリストまたは連想の場合は,文字通りに与えられる.その他のメッセージはすべて,HoldComplete[DisableFormatting[expr]]の形式で,または"name"DisableFormatting[val]の形式の遅延規則の連想のリストとして与えらる.
- セキュリティのために,ホールドされた式の一部や遅延規則の右辺,あるいは文字列メッセージにToExpressionを適用する等の未評価のメッセージの内容には注意してアクセスすべきである.
- メッセージ集合に関連する可能な特性
-
"TimeSeries" メッセージ中の一連の要素の連想 "Dataset" メッセージ中の要素のデータ集合 - チャネルリスナとチャネルに関連した特性
-
"ReceivedMessageCount" リスナが受信したメッセージ総数 "AvailableMessageCount" 現在リスナに保存されているメッセージ数.上限はChannelHistoryLength "HandlerFunction" メッセージに適用されるハンドラ関数 "Databin" チャネルに関連付けられたデータビン(もしあれば) "ChannelObject" 受信中のチャネルオブジェクト "URL" 受信中のチャネルのURL - ChannelListenerのInformationは次の特性を含むことがある.
-
"Status" 文字列としてのリスナのステータス "ChannelPath" 聞いているチャンネルのチャネルブローカサーバのパスn "ChannelBase" 聞いているチャンネルのチャネルブローカサーバのベースURL "ChannelObject" 聞いているチャンネルを表すChannelObject "ChannelOwner" 聞いているチャンネルを所有しているユーザのWolfram ID "ChannelProtocol" 聞いているチャンネルに接続するための通信プロトコル "ReceivedMessageCount" リスナが受信したメッセージ総数 "AvailableMessageCount" 現在リスナに保存されているメッセージ数.上限はChannelHistoryLength
例題
すべて開く すべて閉じる例 (1)
チャネルを受信し始めることでChannelListenerオブジェクトを作る:
CreateChannel["example"];
listener = ChannelListen["example"]チャネルにメッセージを送り,リスナオブジェクトからそれを取り出す:
ChannelSend["example", "hello"]listener["Message"]listener["Timestamp"]ChannelSend["example", "there"];
ChannelSend["example", "world"];listener["Message", All]listener["Message", 2]DeleteChannel["example"];スコープ (8)
最新のメッセージ (1)
CreateChannel["example"];
listener = ChannelListen["example"]ChannelSend["example", "message"]listener["Message"]listener["MetaInformation"]listener["FullMessage"]listener[{"Timestamp", "Message"}]DeleteChannel["example"];最近のメッセージ (3)
CreateChannel["example"];
listener = ChannelListen["example"]Scan[ChannelSend["example", #]&, {1, 2, 3}]listener["ReceivedMessageCount"]listener["Message", All]listener[{"Message", "Timestamp"}, All]listener["Message", 2]DeleteChannel["example"];連想の形で送られた数多くのメッセージのタイムスタンプ.メッセージ間には時間差がある:
CreateChannel["example"];
listener = ChannelListen["example"]ChannelSend["example", #]& /@ Table[<|"sin" -> Sin[x], "cos" -> Cos[x]|>, {x, 0, Pi, .2}];listener["TimeSeries"]DateListPlot[%]受信したメッセージのDataset:
listener["Dataset"]DeleteChannel["example"];名前付きのキーなしで送られた生のデータのTimeSeries:
CreateChannel["example"];
listener = ChannelListen["example"]ChannelSend["example", #]& /@ RandomReal[{0, 1}, 5];listener["TimeSeries"]DeleteChannel["example"];原子的メッセージ (1)
文字列や数のように特定の原子式からなるメッセージは逐語的に与えられる:
CreateChannel["example"];
listener = ChannelListen["example"]Scan[ChannelSend["example", #]&, {"string", 100, True}]listener["Message", All]そのような原子式を含むリスト,規則,連想もまた逐語的に与えられる:
Scan[ChannelSend["example", #]&, {{1, 2, 3}, "a" -> "b", {"c" -> 1}, <|"d" -> True|>}]listener["Message", All]DeleteChannel["example"];記号メッセージ (2)
即時実行可能なWolfram言語コードを含む記号メッセージは,未評価のままにされる:
CreateChannel["example"];
listener = ChannelListen["example"]ChannelSend["example", Unevaluated[Print["hello"]]]listener["Message"]%//InputFormReleaseHold[%]DeleteChannel["example"];メッセージ中の遅延規則は,左辺が文字列,数,あるいはシンボルのTrue,False,Nullのような原子式の小さい集合の一つである限り逐語的に与えられる:
CreateChannel["example"];
listener = ChannelListen["example"]ChannelSend["example", <|"a" :> 1 + 1, 2 :> Sin[x ^ 2], True :> Print[1]|>]listener["Message"]しかし,遅延規則の右辺のフォーマッティングはまだ無効になっている:
%//InputForm2 /. %DeleteChannel["example"];リスナとチャネルの特性 (1)
CreateChannel["example"];
listener = ChannelListen["example", Print]listener["URL"]リスナが受信しているチャネルを表すChannelObject:
listener["ChannelObject"]listener["HandlerFunction"]DeleteChannel["example"];特性と関係 (1)
ChannelListenerにキャッシュされているメッセージの未評価部分はDisableFormattingで囲まれる:
CreateChannel["example"];
listener = ChannelListen["example"]ChannelSend["example", Unevaluated[Print["hello"]]];ChannelSend["example", "x" :> Print["again"]];listener["Message", All]%//InputForm{ReleaseHold[%[[1]]], "x" /. %[[2]]}DeleteChannel["example"];考えられる問題 (1)
規則の左辺が文字列以外のキーのとき,メッセージは未評価のままにされることが多い:
CreateChannel["example"];
listener = ChannelListen["example"]Scan[ChannelSend["example", #]&, {a -> 1, <|b -> 2|>}]listener["Message", All]Scan[ChannelSend["example", #]&, {"a" -> 1, <|"b" -> 2|>}]listener["Message", 2]DeleteChannel["example"];関連するガイド
テキスト
Wolfram Research (2016), ChannelListener, Wolfram言語関数, https://reference.wolfram.com/language/ref/ChannelListener.html.
CMS
Wolfram Language. 2016. "ChannelListener." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ChannelListener.html.
APA
Wolfram Language. (2016). ChannelListener. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ChannelListener.html
BibTeX
@misc{reference.wolfram_2026_channellistener, author="Wolfram Research", title="{ChannelListener}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/ChannelListener.html}", note=[Accessed: 10-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_channellistener, organization={Wolfram Research}, title={ChannelListener}, year={2016}, url={https://reference.wolfram.com/language/ref/ChannelListener.html}, note=[Accessed: 10-August-2026]}