ChannelSend

ChannelSend[channel,msg]

往指定信道发送指定消息 msg.

更多信息和选项

  • ChannelSend[channel,] 中,可以用信道对象或在 ChannelObject 中使用的任何形式来指定 channel.
  • 消息 msg 可以是任何表达式.
  • 采用缺省设置 $AllowExternalChannelFunctions=False 时, ChannelSend[channel,] 只能用于认证过的信道和你所拥有的信道.
  • 除了裸露的字符串(按原样发送)外,所有消息在通过信道代理服务器传输之前,都在内部序列化到 WXF.
  • 将来可能发布的任何不是基于 Wolfram 语言的信道代理客户端都可能仅支持字符串消息. 因此,如果希望使程序的消息与这些客户端向前兼容,建议使用与语言无关的字符串格式对其进行编码,例如 JSONXML.
  • ChannelSend 仅拦阻到消息发送到代理为止. 它不等待代理确认收到消息.

范例

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

基本范例  (1)

开始监听信道并向信道发送消息:

往信道发送一条消息:

可从监听器处按为 ChannelListener 对象指定的格式获取消息:

删除信道:

范围  (2)

以关联形式发送消息:

以规则或规则列表形式发送消息:

发送任意的 Wolfram 语言代码:

发送当前的笔记本:

清理:

创建一个信道,以传输编码为 JSON 字符串的数据:

开始监听信道:

编码并发送一些数据:

检索并解码接收到的数据:

清理:

应用  (1)

一个信道监听器,接收压缩的笔记本,并在新窗口中打开:

创建笔记本并将其发送到信道:

收到的笔记本:

清理:

属性和关系  (2)

可以用 ChannelListen 创建的监听器接收 ChannelSend 发送的消息:

清理:

为了安全起见,ChannelSend 发送的消息可能以未经运算的形式由信道监听器保留,具体取决于其内容.

myFunction 的调用封装在 HoldComplete 中读取:

清理:

可能存在的问题  (1)

由于 ChannelSend 异步返回,因此发送到信道的消息将无法从连接到该信道的监听器立即获得:

发送一条消息,然后立即尝试从监听器中检索它:

在发送消息之后引入一个暂停,以让监听器有时间接收消息:

也可使用 While 循环在监听器提供消息之前进行等待:

清理:

Wolfram Research (2016),ChannelSend,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ChannelSend.html (更新于 2020 年).

文本

Wolfram Research (2016),ChannelSend,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ChannelSend.html (更新于 2020 年).

CMS

Wolfram 语言. 2016. "ChannelSend." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/ChannelSend.html.

APA

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

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_channelsend, organization={Wolfram Research}, title={ChannelSend}, year={2020}, url={https://reference.wolfram.com/language/ref/ChannelSend.html}, note=[Accessed: 22-November-2024 ]}