ChannelListener

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
  • 如果消息是字符串、RealIntegerByteArrayTrueFalseNullImageImage3D,或此类对象的列表或关联,则从字面上给出消息的内容. 所有其他消息都以 HoldComplete[DisableFormatting[expr]]的形式给出,或者以形如 "name"DisableFormatting[val]的延迟规则的列表或关联形式给出.
  • 为安全起见,在存取未经评估的消息的内容时要格外小心,比如保留表达式的部分内容、延迟规则的右手侧,或对字符串消息应用 ToExpression.
  • 和一组消息相关的可能的属性有:
  • "TimeSeries"消息中元素的时间序列的关联
    "Dataset"消息中元素的数据集
  • 与信道监听器及信道相关的属性有:
  • "ReceivedMessageCount"监听器收到的消息的总数
    "AvailableMessageCount"监听器当前存储的消息数(受 ChannelHistoryLength 限制)
    "HandlerFunction"应用于消息的处理函数
    "Databin"和信道关联的数据仓(如果有的话)
    "ChannelObject"被监听的信道对象
    "URL"被监听的信道的 URL
  • ChannelListenerInformation 可能包含以下属性:
  • "Status"作为字符串的监听器状态
    "ChannelPath"正在监听的信道的信道代理服务器上的路径
    "ChannelBase"信道代理服务器的基本 URL,用于正在监听的信道
    "ChannelObject"表示正在监听的信道的 ChannelObject
    "ChannelOwner"拥有正在监听信道的用户的 Wolfram ID
    "ChannelProtocol"用于连接到正在监听的信道的通信协议
    "ReceivedMessageCount"监听器收到的消息总数
    "AvailableMessageCount"监听器当前存储的消息数(受 ChannelHistoryLength 限制)

范例

打开所有单元关闭所有单元

基本范例  (1)

通过开始监听信道创建一个 ChannelListener 对象:

向信道发送消息,然后从监听器对象取回消息:

消息的服务器时间戳:

发送更多消息:

取回所有消息:

取回最近的两条消息:

删除信道,这将删除监听器:

范围  (8)

最后一条消息  (1)

监听器收到的最后一条消息的内容:

元信息:

带有元信息的内容:

几个属性:

删除信道,这将删除监听器:

最近的几条消息  (3)

收到消息的数量及其内容:

所有消息和时间戳:

最后两条消息:

删除信道,这将删除监听器:

以关联形式发送的多条消息的时间序列,消息间有时延:

绘制数据:

收到的消息的 Dataset

清理:

发送原始数据的 TimeSeries,不包括已命名的键:

清理:

原子消息  (1)

逐字给出由某些原子表达式(例如字符串和数字)组成的消息:

包含此类原子表达式的列表、规则和关联也逐字给出:

清理:

符号消息  (2)

对于带有立即可执行的 Wolfram 语言代码的符号消息,要保留原样,不要执行:

禁止对未经运算的消息进行格式化:

在对内容进行检查之后再执行:

清理:

消息中的延迟规则逐字给出,只要左侧是字符串、数字或一小组原子表达式(如符号TrueFalseNull)中的一个即可:

但依旧禁止延迟规则右手侧的格式化:

对右手侧进行计算,从而恢复正常的格式:

清理:

监听器和信道属性  (1)

正在被监听信道的 URL:

ChannelObject 表示监听器正在监听的信道:

监听器的处理函数:

清理:

属性和关系  (1)

缓存在 ChannelListener 中的消息未经计算的部分被封装在 DisableFormatting 中:

对保留部分 (held part) 进行计算,从而移除封装:

清理:

可能存在的问题  (1)

如果规则的左手侧出现非字符串键,往往会导致消息不被执行:

以可以被执行的安全的格式重新发送消息:

现在以文字形式给出消息:

清理:

Wolfram Research (2016),ChannelListener,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ChannelListener.html.

文本

Wolfram Research (2016),ChannelListener,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ChannelListener.html.

CMS

Wolfram 语言. 2016. "ChannelListener." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ChannelListener.html.

APA

Wolfram 语言. (2016). ChannelListener. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ChannelListener.html 年

BibTeX

@misc{reference.wolfram_2024_channellistener, author="Wolfram Research", title="{ChannelListener}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/ChannelListener.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_channellistener, organization={Wolfram Research}, title={ChannelListener}, year={2016}, url={https://reference.wolfram.com/language/ref/ChannelListener.html}, note=[Accessed: 21-November-2024 ]}