返回介绍

web3.shh.subscribe - 订阅whisper消息

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

订阅收到的whisper消息。

调用:

web3.shh.subscribe('messages', options [, callback])

参数:

  • "messages" - String: 订阅类型
  • options:Object - 订阅选项,有如下字段:
    • symKeyID - String: 用于消息解密的对称密钥
    • privateKeyID - String: 用于消息解密的私钥
    • sig - String ,可选,签名的公钥,用于验证
    • topics- Array,可选,用于过滤消息的主题数组, 每个主题必须是4字节长的16进制字符串
    • minPow - Number ,可选,处理收到的消息所需的最小PoW
    • allowP2P - Boolean ,可选,是否允许处理端对端消息
  • callback - Function: 可选的回调函数,其第一个参数为错误对象,第二个参数为返回值(optional) Optional callback, returns an error object as first parameter and the result as second. Will be called for each incoming subscription, and the subscription itself as 3 parameter.

通知返回值:

Object - 接收到的消息,其结构如下:

  • hash - String: 封装后消息的哈希签名
  • sig - String: 用于对消息进行签名的公钥
  • recipientPublicKey - String: 接收人的公钥
  • timestamp - String: 消息创建的unix时间戳
  • ttl - Number: 以秒为单位的消息存活时间
  • topic - String: 4字节的16进制字符串,消息主题.
  • payload - String: 解密的负载
  • padding - Number: 可选,补齐长度
  • pow - Number: PoW值

示例代码:

web3.shh.subscribe('messages', {
    symKeyID: 'bf31b9ffc2387e18636e0a3d0c56b023264c16e78a2adcba1303cefc685e610f',
    sig: '0x04d1574d4eab8f3dde4d2dc7ed2c4d699d77cbbdd09167b8fffa099652ce4df00c4c6e0263eafe05007a46fdf0c8d32b11aeabcd3abbc7b2bc2bb967368a68e9c6',
    ttl: 20,
    topics: ['0xffddaa11'],
    minPow: 0.8,
}, function(error, message, subscription){

    console.log(message);
    > {
        "hash": "0x4158eb81ad8e30cfcee67f20b1372983d388f1243a96e39f94fd2797b1e9c78e",
        "padding": "0xc15f786f34e5cef0fef6ce7c1185d799ecdb5ebca72b3310648c5588db2e99a0d73301c7a8d90115a91213f0bc9c72295fbaf584bf14dc97800550ea53577c9fb57c0249caeb081733b4e605cdb1a6011cee8b6d8fddb972c2b90157e23ba3baae6c68d4f0b5822242bb2c4cd821b9568d3033f10ec1114f641668fc1083bf79ebb9f5c15457b538249a97b22a4bcc4f02f06dec7318c16758f7c008001c2e14eba67d26218ec7502ad6ba81b2402159d7c29b068b8937892e3d4f0d4ad1fb9be5e66fb61d3d21a1c3163bce74c0a9d16891e2573146aa92ecd7b91ea96a6987ece052edc5ffb620a8987a83ac5b8b6140d8df6e92e64251bf3a2cec0cca",
        "payload": "0xdeadbeaf",
        "pow": 0.5371803278688525,
        "recipientPublicKey": null,
        "sig": null,
        "timestamp": 1496991876,
        "topic": "0x01020304",
        "ttl": 50
    }
})
// or
.on('data', function(message){ ... });

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

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

发布评论

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