返回介绍

web3.shh.post - 发送whisper消息

发布于 2020-01-19 11:52:19 字数 1753 浏览 1048 评论 0 收藏 0

调用web3.shh.post()方法向网络中发送一个whisper消息。

调用:

web3.shh.post(object [, callback])

参数:

  • object: Object - 结构如下:
    • symKeyID - String,可选,用于信息加密的对称秘钥ID
    • pubKey - String,可选,用于消息加密的公钥,pubKey或symKeyID不能同时使用
    • sig - String,可选,签名密钥的ID
    • ttl - Number: 以秒为单位的消息存活时长
    • topic - String: 4 Bytes ,消息主题
    • payload - String: 消息中要加密的载荷部分
    • padding - Number,可选,对齐长度
    • powTime - Number ,可选,POW时间上限,以秒为单位
    • powTarget - Number ,可选,消息发送对象为处理此消息需要的最小PoW
    • targetPeer - Number,可选,对端ID,仅用于端对端消息
  • callback - Function: 可选的回调函数,其第一个参数为错误对象,第二个参数为返回结果

返回值:

一个Promise对象,在发送成功时其解析值为所发送消息的哈希值字符串,出错时将解析为错误原因。

示例代码:

var identities = [];
var subscription = null;

Promise.all([
    web3.shh.newSymKey().then((id) => {identities.push(id);}),
    web3.shh.newKeyPair().then((id) => {identities.push(id);})

]).then(() => {

    // will receive also its own message send, below
    subscription = shh.subscribe("messages", {
        symKeyID: identities[0],
        topics: ['0xffaadd11']
    }).on('data', console.log);

}).then(() => {
   web3.shh.post({
        symKeyID: identities[0], // encrypts using the sym key ID
        sig: identities[1], // signs the message using the keyPair ID
        ttl: 10,
        topic: '0xffaadd11',
        payload: '0xffffffdddddd1122',
        powTime: 3,
        powTarget: 0.5
    }).then(h => console.log(`Message with hash ${h} was successfuly sent`))
    .catch(err => console.log("Error: ", err));
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文