本文整理汇总了Golang中github.com/keybase/go-framed-msgpack-rpc.NewClient函数的典型用法代码示例。如果您正苦于以下问题:Golang NewClient函数的具体用法?Golang NewClient怎么用?Golang NewClient使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewClient函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: HandlePaperKeyCached
// HandlePaperKeyCached is called whenever a paper key is cached
// in response to a rekey harassment.
func (n *NotifyRouter) HandlePaperKeyCached(uid keybase1.UID, encKID keybase1.KID, sigKID keybase1.KID) {
if n == nil {
return
}
n.G().Log.Debug("+ Sending paperkey cached notfication")
arg := keybase1.PaperKeyCachedArg{
Uid: uid,
EncKID: encKID,
SigKID: sigKID,
}
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Favorites` notification type
if n.getNotificationChannels(id).Paperkeys {
// In the background do...
go func() {
(keybase1.NotifyPaperKeyClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).PaperKeyCached(context.TODO(), arg)
}()
}
return true
})
if n.listener != nil {
n.listener.PaperKeyCached(uid, encKID, sigKID)
}
n.G().Log.Debug("- Sent paperkey cached notfication")
}
开发者ID:qbit,项目名称:client,代码行数:31,代码来源:notify_router.go
示例2: connect
// connect performs the actual connect() and rpc setup.
func (c *Connection) connect(ctx context.Context) error {
c.log.Debug("Connection: dialing transport")
// connect
transport, err := c.transport.Dial(ctx)
if err != nil {
c.log.Warning("Connection: error dialing transport: %v", err)
return err
}
client := rpc.NewClient(transport, c.errorUnwrapper)
server := rpc.NewServer(transport, libkb.WrapError)
// call the connect handler
err = c.handler.OnConnect(ctx, c, client, server)
if err != nil {
c.log.Warning("Connection: error calling OnConnect handler: %v", err)
return err
}
// set the client for other callers.
// we wait to do this so the handler has time to do
// any setup required, e.g. authenticate.
c.mutex.Lock()
defer c.mutex.Unlock()
c.client = client
c.server = server
c.transport.Finalize()
c.log.Debug("Connection: connected")
return nil
}
开发者ID:gozes,项目名称:kbfs-beta,代码行数:33,代码来源:connection.go
示例3: HandleTrackingChanged
// HandleTrackingChanged is called whenever we have a new tracking or
// untracking chain link related to a given user. It will broadcast the
// messages to all curious listeners.
func (n *NotifyRouter) HandleTrackingChanged(uid keybase1.UID, username string) {
if n == nil {
return
}
arg := keybase1.TrackingChangedArg{
Uid: uid,
Username: username,
}
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Tracking` notification type
if n.getNotificationChannels(id).Tracking {
// In the background do...
go func() {
// A send of a `TrackingChanged` RPC with the user's UID
(keybase1.NotifyTrackingClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).TrackingChanged(context.TODO(), arg)
}()
}
return true
})
if n.listener != nil {
n.listener.TrackingChanged(uid, username)
}
}
开发者ID:qbit,项目名称:client,代码行数:29,代码来源:notify_router.go
示例4: HandleFavoritesChanged
// HandleFavoritesChanged is called whenever the kbfs favorites change
// for a user (and caches should be invalidated). It will broadcast the
// messages to all curious listeners.
func (n *NotifyRouter) HandleFavoritesChanged(uid keybase1.UID) {
if n == nil {
return
}
n.G().Log.Debug("+ Sending favorites changed notfication")
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Favorites` notification type
if n.getNotificationChannels(id).Favorites {
// In the background do...
go func() {
// A send of a `FavoritesChanged` RPC with the user's UID
(keybase1.NotifyFavoritesClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).FavoritesChanged(context.TODO(), uid)
}()
}
return true
})
if n.listener != nil {
n.listener.FavoritesChanged(uid)
}
n.G().Log.Debug("- Sent favorites changed notfication")
}
开发者ID:qbit,项目名称:client,代码行数:28,代码来源:notify_router.go
示例5: HandleClientOutOfDate
// ClientOutOfDate is called whenever the API server tells us our client is out
// of date. (This is done by adding special headers to every API response that
// an out-of-date client makes.)
func (n *NotifyRouter) HandleClientOutOfDate(upgradeTo, upgradeURI, upgradeMsg string) {
if n == nil {
return
}
n.G().Log.Debug("+ Sending client-out-of-date notfication")
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Session` notification type
if n.getNotificationChannels(id).Session {
// In the background do...
go func() {
// A send of a `ClientOutOfDate` RPC
(keybase1.NotifySessionClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).ClientOutOfDate(context.TODO(), keybase1.ClientOutOfDateArg{
UpgradeTo: upgradeTo,
UpgradeURI: upgradeURI,
UpgradeMsg: upgradeMsg,
})
}()
}
return true
})
if n.listener != nil {
n.listener.ClientOutOfDate(upgradeTo, upgradeURI, upgradeMsg)
}
n.G().Log.Debug("- client-out-of-date notification sent")
}
开发者ID:qbit,项目名称:client,代码行数:31,代码来源:notify_router.go
示例6: newGregorFirehoseHandler
func newGregorFirehoseHandler(g *libkb.GlobalContext, connID libkb.ConnectionID, xp rpc.Transporter) *gregorFirehoseHandler {
return &gregorFirehoseHandler{
Contextified: libkb.NewContextified(g),
connID: connID,
cli: keybase1.GregorUIClient{Cli: rpc.NewClient(xp, libkb.ErrorUnwrapper{})},
}
}
开发者ID:qbit,项目名称:client,代码行数:7,代码来源:gregor.go
示例7: NewBaseHandler
func NewBaseHandler(xp rpc.Transporter) *BaseHandler {
h := &BaseHandler{xp: xp}
h.cli = rpc.NewClient(h.xp, libkb.ErrorUnwrapper{})
h.loginCli = &keybase1.LoginUiClient{Cli: h.cli}
h.secretCli = &keybase1.SecretUiClient{Cli: h.cli}
h.logCli = &keybase1.LogUiClient{Cli: h.cli}
return h
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:9,代码来源:handler.go
示例8: GetSecretUI
func (u *UIRouter) GetSecretUI() (libkb.SecretUI, error) {
x := u.getUI(libkb.SecretUIKind)
if x == nil {
return nil, nil
}
cli := rpc.NewClient(x, libkb.ErrorUnwrapper{})
scli := keybase1.SecretUiClient{Cli: cli}
return &SecretUI{cli: &scli}, nil
}
开发者ID:polluks,项目名称:client,代码行数:9,代码来源:ui_router.go
示例9: GetSecretUI
func (u *UIRouter) GetSecretUI() (ui libkb.SecretUI, err error) {
defer u.G().Trace("UIRouter.GetSecretUI", func() error { return err })
x := u.getUI(libkb.SecretUIKind)
if x == nil {
u.G().Log.Debug("| getUI(libkb.SecretUIKind) returned nil")
return nil, nil
}
cli := rpc.NewClient(x, libkb.ErrorUnwrapper{})
scli := keybase1.SecretUiClient{Cli: cli}
u.G().Log.Debug("| returning delegated SecretUI")
return &SecretUI{cli: &scli}, nil
}
开发者ID:mark-adams,项目名称:client,代码行数:12,代码来源:ui_router.go
示例10: GetRekeyUINoSessionID
func (u *UIRouter) GetRekeyUINoSessionID() (keybase1.RekeyUIInterface, error) {
var err error
defer u.G().Trace("UIRouter.GetRekeyUINoSessionID", func() error { return err })()
x := u.getUI(libkb.RekeyUIKind)
if x == nil {
return nil, nil
}
cli := rpc.NewClient(x, libkb.ErrorUnwrapper{})
uicli := keybase1.RekeyUIClient{Cli: cli}
ret := &RekeyUI{
cli: &uicli,
Contextified: libkb.NewContextified(u.G()),
}
return ret, nil
}
开发者ID:qbit,项目名称:client,代码行数:16,代码来源:ui_router.go
示例11: HandleLogout
// HandleLogout is called whenever the current user logged out. It will broadcast
// the message to all connections who care about such a mesasge.
func (n *NotifyRouter) HandleLogout() {
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Session` notification type
if n.getNotificationChannels(id).Session {
// In the background do...
go func() {
// A send of a `LoggedOut` RPC
(keybase1.NotifySessionClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).LoggedOut(context.TODO())
}()
}
return true
})
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:18,代码来源:notify_router.go
示例12: HandleUserChanged
// HandleUserChanged is called whenever we know that a given user has
// changed (and must be cache-busted). It will broadcast the messages
// to all curious listeners.
func (n *NotifyRouter) HandleUserChanged(uid keybase1.UID) {
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Users` notification type
if n.getNotificationChannels(id).Users {
// In the background do...
go func() {
// A send of a `UserChanged` RPC with the user's UID
(keybase1.NotifyUsersClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).UserChanged(context.TODO(), uid)
}()
}
return true
})
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:19,代码来源:notify_router.go
示例13: HandleAppExit
// HandleAppExit is called whenever an app exit command is issued
func (n *NotifyRouter) HandleAppExit() {
if n == nil {
return
}
n.G().Log.Debug("+ Sending app exit notification")
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
if n.getNotificationChannels(id).App {
go func() {
(keybase1.NotifyAppClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).Exit(context.TODO())
}()
}
return true
})
n.G().Log.Debug("- Sent app exit notfication")
}
开发者ID:qbit,项目名称:client,代码行数:18,代码来源:notify_router.go
示例14: GetSecretUI
func (u *UIRouter) GetSecretUI(sessionID int) (ui libkb.SecretUI, err error) {
defer u.G().Trace("UIRouter.GetSecretUI", func() error { return err })
x := u.getUI(libkb.SecretUIKind)
if x == nil {
u.G().Log.Debug("| getUI(libkb.SecretUIKind) returned nil")
return nil, nil
}
cli := rpc.NewClient(x, libkb.ErrorUnwrapper{})
scli := keybase1.SecretUiClient{Cli: cli}
u.G().Log.Debug("| returning delegated SecretUI with sessionID = %d", sessionID)
ret := &SecretUI{
cli: &scli,
sessionID: sessionID,
Contextified: libkb.NewContextified(u.G()),
}
return ret, nil
}
开发者ID:jacobhaven,项目名称:client,代码行数:17,代码来源:ui_router.go
示例15: HandleFSActivity
// HandleFSActivity is called for any KBFS notification. It will broadcast the messages
// to all curious listeners.
func (n *NotifyRouter) HandleFSActivity(activity keybase1.FSNotification) {
if n == nil {
return
}
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Kbfs` notification type
if n.getNotificationChannels(id).Kbfs {
// In the background do...
go func() {
// A send of a `FSActivity` RPC with the notification
(keybase1.NotifyFSClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).FSActivity(context.TODO(), activity)
}()
}
return true
})
}
开发者ID:mark-adams,项目名称:client,代码行数:21,代码来源:notify_router.go
示例16: pickFirstConnection
func (p *provisionee) pickFirstConnection() (err error) {
select {
case <-p.start:
case sec := <-p.arg.SecretChannel:
p.conn.Close()
err = p.startServer(sec)
if err != nil {
return err
}
cli := keybase1.Kex2ProvisionerClient{Cli: rpc.NewClient(p.xp, nil)}
if err = cli.KexStart(context.TODO()); err != nil {
return err
}
case <-p.arg.Ctx.Done():
err = ErrCanceled
case <-time.After(p.arg.Timeout):
err = ErrTimedOut
}
return
}
开发者ID:alex,项目名称:client-beta,代码行数:20,代码来源:provisionee.go
示例17: GetRekeyUI
func (u *UIRouter) GetRekeyUI() (keybase1.RekeyUIInterface, int, error) {
var err error
defer u.G().Trace("UIRouter.GetRekeyUI", func() error { return err })()
x := u.getUI(libkb.RekeyUIKind)
if x == nil {
return nil, 0, nil
}
cli := rpc.NewClient(x, libkb.ErrorUnwrapper{})
uicli := keybase1.RekeyUIClient{Cli: cli}
sessionID, err := uicli.DelegateRekeyUI(context.TODO())
if err != nil {
return nil, 0, err
}
ret := &RekeyUI{
sessionID: sessionID,
cli: &uicli,
Contextified: libkb.NewContextified(u.G()),
}
return ret, sessionID, nil
}
开发者ID:qbit,项目名称:client,代码行数:21,代码来源:ui_router.go
示例18: HandleLogin
// HandleLogin is called whenever a user logs in. It will broadcast
// the message to all connections who care about such a mesasge.
func (n *NotifyRouter) HandleLogin(u string) {
if n == nil {
return
}
n.G().Log.Debug("+ Sending login notfication, as user %q", u)
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Session` notification type
if n.getNotificationChannels(id).Session {
// In the background do...
go func() {
// A send of a `LoggedIn` RPC
(keybase1.NotifySessionClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).LoggedIn(context.TODO(), u)
}()
}
return true
})
n.G().Log.Debug("- Login notification sent")
}
开发者ID:mark-adams,项目名称:client,代码行数:23,代码来源:notify_router.go
示例19: HandleServiceShutdown
// HandleServiceShutdown is called whenever the service shuts down.
func (n *NotifyRouter) HandleServiceShutdown() {
if n == nil {
return
}
n.G().Log.Debug("+ Sending service shutdown notfication")
var wg sync.WaitGroup
// For all connections we currently have open...
n.cm.ApplyAll(func(id ConnectionID, xp rpc.Transporter) bool {
// If the connection wants the `Service` notification type
if n.getNotificationChannels(id).Service {
// In the background do...
wg.Add(1)
go func() {
(keybase1.NotifyServiceClient{
Cli: rpc.NewClient(xp, ErrorUnwrapper{}),
}).Shutdown(context.TODO())
wg.Done()
}()
}
return true
})
done := make(chan struct{})
go func() {
wg.Wait()
close(done)
}()
// timeout after 4s (launchd will SIGKILL after 5s)
select {
case <-done:
case <-time.After(4 * time.Second):
n.G().Log.Warning("Timed out sending service shutdown notifications, proceeding to shutdown")
}
n.G().Log.Debug("- Sent service shutdown notfication")
}
开发者ID:qbit,项目名称:client,代码行数:41,代码来源:notify_router.go
示例20: GetIdentifyUI
func (u *UIRouter) GetIdentifyUI() (libkb.IdentifyUI, error) {
x := u.getUI(libkb.IdentifyUIKind)
if x == nil {
return nil, nil
}
cli := rpc.NewClient(x, libkb.ErrorUnwrapper{})
iuicli := keybase1.IdentifyUiClient{Cli: cli}
sessionID, err := iuicli.DelegateIdentifyUI(context.TODO())
if err != nil {
return nil, err
}
ret := &RemoteIdentifyUI{
sessionID: sessionID,
uicli: iuicli,
logUI: &LogUI{
sessionID,
&keybase1.LogUiClient{Cli: cli},
},
Contextified: libkb.NewContextified(u.G()),
}
return ret, nil
}
开发者ID:polluks,项目名称:client,代码行数:22,代码来源:ui_router.go
注:本文中的github.com/keybase/go-framed-msgpack-rpc.NewClient函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论