Skip to content

Instantly share code, notes, and snippets.

@or-else
Last active May 25, 2018 16:56
Show Gist options
  • Save or-else/025ca48ce04faceb924b5f8d0a1460ed to your computer and use it in GitHub Desktop.
Save or-else/025ca48ce04faceb924b5f8d0a1460ed to your computer and use it in GitHub Desktop.
Example implementation of a gRPC Tinode client in Go
package main
import (
"context"
"log"
"github.com/tinode/chat/pbx"
"google.golang.org/grpc"
)
func main() {
conn, err := grpc.Dial("localhost:6061", grpc.WithInsecure())
if err != nil {
log.Fatal("Error dialing", err)
}
c := pbx.NewNodeClient(conn)
response, err := c.MessageLoop(context.Background())
if err != nil {
log.Fatal("Error calling", err)
}
hi := &pbx.ClientHi{}
hi.Id = "1"
hi.UserAgent = "Golang_Spider_Bot/3.0"
hi.Ver = "0.15"
hi.Lang = "EN"
msgHi := &pbx.ClientMsg_Hi{hi}
clientMessage := &pbx.ClientMsg{Message: msgHi}
err = response.Send(clientMessage)
if err != nil {
log.Fatal("error sending message ", err)
}
login := &pbx.ClientLogin{}
login.Id = "112121"
login.Scheme = "basic"
login.Secret = []byte("secret")
clMsg := &pbx.ClientMsg_Login{login}
clientMessage = &pbx.ClientMsg{Message: clMsg}
err = response.Send(clientMessage)
if err != nil {
log.Fatal("error sending message ", err)
}
serverMsg, err := response.Recv()
if err != nil {
log.Fatal(err)
}
log.Println(serverMsg)
serverMsg, err = response.Recv()
if err != nil {
log.Fatal(err)
}
log.Println(serverMsg)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment