filetext_grpc.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package main
  2. import (
  3. "context"
  4. "fileproto"
  5. "fmt"
  6. "github.com/golang/protobuf/proto"
  7. "google.golang.org/grpc"
  8. qu "qfw/util"
  9. server "server"
  10. "time"
  11. . "util"
  12. )
  13. var FileTextClient server.CallerClient
  14. //初始化客户端
  15. func InitFileTextGrpcClient() {
  16. defer qu.Catch()
  17. // 连接服务器
  18. t1 := time.Now()
  19. conn, err := grpc.Dial(OcrServerAddr, grpc.WithInsecure())
  20. if err != nil {
  21. fmt.Printf("连接服务端失败: %s", err)
  22. return
  23. } else {
  24. fmt.Println("连接服务端OK")
  25. }
  26. fmt.Println("连接GRPC耗时:", time.Since(t1))
  27. // 新建一个客户端
  28. FileTextClient = server.NewCallerClient(conn)
  29. }
  30. func GetFileText(fileName, fileUrl, fileType string, fileBytes []byte) *fileproto.FileResponse {
  31. defer qu.Catch()
  32. params := &fileproto.Request{
  33. FileName: fileName,
  34. FileUrl: fileUrl,
  35. FileType: fileType,
  36. FileBytes: fileBytes,
  37. ReturnType: 0, //正式环境改为0
  38. ExtractType: 1,
  39. }
  40. aa := &fileproto.FileRequest{
  41. Message: []*fileproto.Request{
  42. params,
  43. },
  44. }
  45. bs, _ := proto.Marshal(aa)
  46. resp, err := FileTextClient.Call(context.Background(), &server.Request{
  47. Topic: "file2txt",
  48. Timeout: 300,
  49. Data: bs,
  50. })
  51. if err != nil {
  52. fmt.Println("调用服务端代码失败: ", err.Error())
  53. return nil
  54. }
  55. respData := new(fileproto.FileResponse)
  56. err = proto.Unmarshal(resp.GetData(), respData)
  57. if err != nil {
  58. fmt.Println("结果解析失败...")
  59. }
  60. return respData
  61. }