代码拉取完成,页面将自动刷新
同步操作将从 andeyalee/erpc 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package main
import (
"time"
tp "github.com/henrylee2cn/teleport"
)
func main() {
go tp.GraceSignal()
tp.SetShutdown(time.Second*20, nil, nil)
var peer = tp.NewPeer(tp.PeerConfig{
SlowCometDuration: time.Millisecond * 500,
PrintBody: true,
})
defer peer.Close()
peer.RoutePush(new(Push))
var sess, rerr = peer.Dial("127.0.0.1:9090")
if rerr != nil {
tp.Fatalf("%v", rerr)
}
var reply []byte
for {
if rerr = sess.Pull(
"/group/home/test?peer_id=call-1",
[]byte("pull text"),
&reply,
tp.WithQuery("a", "1"),
).Rerror(); rerr != nil {
tp.Errorf("pull error: %v", rerr)
time.Sleep(time.Second * 2)
} else {
break
}
}
tp.Infof("test reply: %s", reply)
rerr = sess.Pull(
"/group/home/test_unknown?peer_id=call-2",
[]byte("unknown pull text"),
&reply,
tp.WithQuery("b", "2"),
).Rerror()
if tp.IsConnRerror(rerr) {
tp.Fatalf("has conn rerror: %v", rerr)
}
if rerr != nil {
tp.Fatalf("pull error: %v", rerr)
}
tp.Infof("test_unknown: %s", reply)
}
// Push controller
type Push struct {
tp.PushCtx
}
// Test handler
func (p *Push) Test(args *[]byte) *tp.Rerror {
tp.Infof("receive push(%s):\nargs: %s\nquery: %#v\n", p.Ip(), *args, p.Query())
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。