提交 c40b3540 作者: Jeromy

add 'pubsub ls' to list topics

License: MIT
Signed-off-by: 's avatarJeromy <why@ipfs.io>
上级 009301bf
......@@ -13,7 +13,7 @@ import (
cmds "github.com/ipfs/go-ipfs/commands"
core "github.com/ipfs/go-ipfs/core"
floodsub "gx/ipfs/QmQtsU1T46uxjFMd5r5PfyaY1HdV5jcxZbvvHbAVRL52hc/floodsub"
floodsub "gx/ipfs/QmXzEtq2W7rGCF9RYXL79zQvLsKZxAmT9QFtEC5FYfQYc5/floodsub"
u "gx/ipfs/QmZNVWh8LLjAavuQ2JXuFmuYH3C11xo988vSgp7UQrTRj1/go-ipfs-util"
key "gx/ipfs/Qmce4Y4zg3sYr7xKM5UueS67vhNni6EeWgCRnb7MbLJMew/go-key"
pstore "gx/ipfs/QmdMfSLMDBDYhtc4oF3NYGCZr5dy4wQb6Ji26N4D4mdxa2/go-libp2p-peerstore"
......@@ -36,6 +36,7 @@ To use, the daemon must be run with '--enable-pubsub-experiment'.
Subcommands: map[string]*cmds.Command{
"pub": PubsubPubCmd,
"sub": PubsubSubCmd,
"ls": PubsubLsCmd,
},
}
......@@ -76,7 +77,7 @@ To use, the daemon must be run with '--enable-pubsub-experiment'.
}
topic := req.Arguments()[0]
msgs, err := n.Floodsub.Subscribe(topic)
msgs, err := n.Floodsub.Subscribe(req.Context(), topic)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
......@@ -194,7 +195,6 @@ To use, the daemon must be run with '--enable-pubsub-experiment'.
cmds.StringArg("topic", true, false, "Topic to publish to."),
cmds.StringArg("data", true, true, "Payload of message to publish.").EnableStdin(),
},
Options: []cmds.Option{},
Run: func(req cmds.Request, res cmds.Response) {
n, err := req.InvocContext().GetNode()
if err != nil {
......@@ -223,3 +223,41 @@ To use, the daemon must be run with '--enable-pubsub-experiment'.
}
},
}
var PubsubLsCmd = &cmds.Command{
Helptext: cmds.HelpText{
Tagline: "List subscribed topics by name.",
ShortDescription: `
ipfs pubsub ls lists out the names of topics you are currently subscribed to.
This is an experimental feature. It is not intended in its current state
to be used in a production environment.
To use, the daemon must be run with '--enable-pubsub-experiment'.
`,
},
Run: func(req cmds.Request, res cmds.Response) {
n, err := req.InvocContext().GetNode()
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}
// Must be online!
if !n.OnlineMode() {
res.SetError(errNotOnline, cmds.ErrClient)
return
}
if n.Floodsub == nil {
res.SetError(fmt.Errorf("experimental pubsub feature not enabled. Run daemon with --enable-pubsub-experiment to use."), cmds.ErrNormal)
return
}
res.SetOutput(&stringList{n.Floodsub.GetTopics()})
},
Type: stringList{},
Marshalers: cmds.MarshalerMap{
cmds.Text: stringListMarshaler,
},
}
......@@ -17,13 +17,13 @@ import (
"time"
diag "github.com/ipfs/go-ipfs/diagnostics"
floodsub "gx/ipfs/QmQtsU1T46uxjFMd5r5PfyaY1HdV5jcxZbvvHbAVRL52hc/floodsub"
goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess"
mamask "gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter"
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
b58 "gx/ipfs/QmT8rehPR3F6bmwL6zjUN8XpiDBFFpMP2myPdC6ApsWfJf/go-base58"
ic "gx/ipfs/QmVoi5es8D5fNHZDqoW6DgDAEPEV5hQp8GBz161vZXiwpQ/go-libp2p-crypto"
peer "gx/ipfs/QmWXjJo15p4pzT7cayEwZi2sWgJqLnGDof6ZGMh9xBgU1p/go-libp2p-peer"
floodsub "gx/ipfs/QmXzEtq2W7rGCF9RYXL79zQvLsKZxAmT9QFtEC5FYfQYc5/floodsub"
pstore "gx/ipfs/QmYkwVGkwoPbMVQEbf6LonZg4SsCxGP3H7PBEtdNCNRyxD/go-libp2p-peerstore"
ma "gx/ipfs/QmYzDkkgAEmrcNzFCiYo6L1dTX4EAG1gZkbtdbd9trL4vd/go-multiaddr"
context "gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
......
......@@ -266,9 +266,9 @@
},
{
"author": "whyrusleeping",
"hash": "QmQtsU1T46uxjFMd5r5PfyaY1HdV5jcxZbvvHbAVRL52hc",
"hash": "QmXzEtq2W7rGCF9RYXL79zQvLsKZxAmT9QFtEC5FYfQYc5",
"name": "floodsub",
"version": "0.4.2"
"version": "0.5.0"
}
],
"gxVersion": "0.4.0",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论