ChannelSend
ChannelSend[channel,msg]
往指定信道发送指定消息 msg.
更多信息和选项
- 在 ChannelSend[channel,…] 中,可以用信道对象或在 ChannelObject 中使用的任何形式来指定 channel.
- 消息 msg 可以是任何表达式.
- 采用缺省设置 $AllowExternalChannelFunctions=False 时, ChannelSend[channel,…] 只能用于认证过的信道和你所拥有的信道.
- 除了裸露的字符串(按原样发送)外,所有消息在通过信道代理服务器传输之前,都在内部序列化到 WXF.
- 将来可能发布的任何不是基于 Wolfram 语言的信道代理客户端都可能仅支持字符串消息. 因此,如果希望使程序的消息与这些客户端向前兼容,建议使用与语言无关的字符串格式对其进行编码,例如 JSON 或 XML.
- ChannelSend 仅拦阻到消息发送到代理为止. 它不等待代理确认收到消息.
范例
打开所有单元关闭所有单元基本范例 (1)
范围 (2)
创建一个信道,以传输编码为 JSON 字符串的数据:
属性和关系 (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 年