當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript grpc-web.grpc類代碼示例

本文整理匯總了TypeScript中@improbable-eng/grpc-web.grpc的典型用法代碼示例。如果您正苦於以下問題:TypeScript grpc類的具體用法?TypeScript grpc怎麽用?TypeScript grpc使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了grpc類的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: it

          it("should make a bidirectional request that is terminated by the server", (done) => {
            let didGetOnHeaders = false;
            let didGetOnMessage = false;

            let counter = 1;
            let lastMessage = `helloworld:${counter}`;
            const ping = new PingRequest();
            ping.setSendHeaders(withHeaders);
            ping.setSendTrailers(withTrailers);
            ping.setValue(lastMessage);

            const client = grpc.client(TestService.PingPongBidi, {
              debug: DEBUG,
              host: testHostUrl,
              transport: grpc.WebsocketTransport(),
            });
            client.onHeaders((headers: grpc.Metadata) => {
              DEBUG && debug("headers", headers);
              didGetOnHeaders = true;
              if (withHeaders) {
                assert.deepEqual(headers.get("HeaderTestKey1"), ["ServerValue1"]);
                assert.deepEqual(headers.get("HeaderTestKey2"), ["ServerValue2"]);
              }
            });
            client.onMessage((message: PingResponse) => {
              assert.ok(message instanceof PingResponse);
              assert.deepEqual(message.getValue(), lastMessage);

              if (counter === 10) {
                const ping = new PingRequest();
                ping.setFailureType(PingRequest.FailureType.CODE);
                ping.setErrorCodeReturned(grpc.Code.OK);
                client.send(ping);
              } else {
                counter++;
                lastMessage = `helloworld:${counter}`;
                const ping = new PingRequest();
                ping.setValue(lastMessage);
                client.send(ping);
              }
            });
            client.onEnd((status: grpc.Code, statusMessage: string, trailers: grpc.Metadata) => {
              DEBUG && debug("status", status, "statusMessage", statusMessage);
              assert.strictEqual(status, grpc.Code.OK, "expected OK (0)");
              assert.strictEqual(statusMessage, "", "expected no message");
              if (withTrailers) {
                assert.deepEqual(trailers.get("TrailerTestKey1"), ["ServerValue1"]);
                assert.deepEqual(trailers.get("TrailerTestKey2"), ["ServerValue2"]);
              }
              assert.ok(didGetOnHeaders, "didGetOnHeaders");

              assert.equal(counter, 10, "counter should have been incremented to 10");
              done();
            });
            client.start();

            // send initial message
            client.send(ping);
          });
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:59,代碼來源:client.websocket.spec.ts

示例2: it

        it(`should report status code in Unicode for error with headers + trailers`, (done) => {
          let didGetOnHeaders = false;
          let didGetOnMessage = false;

          const ping = new PingRequest();
          ping.setFailureType(PingRequest.FailureType.CODE_UNICODE);
          ping.setErrorCodeReturned(12);
          ping.setSendHeaders(withHeaders);
          ping.setSendTrailers(withTrailers);

          const client = grpc.client(TestService.PingError, {
            debug: DEBUG,
            transport: transport,
            host: testHostUrl,
          });
          client.onHeaders((headers: grpc.Metadata) => {
            DEBUG && debug("headers", headers);
            didGetOnHeaders = true;
          });
          client.onMessage((message: Empty) => {
            didGetOnMessage = true;
          });
          client.onEnd((status: grpc.Code, statusMessage: string, trailers: grpc.Metadata) => {
            DEBUG && debug("status", status, "statusMessage", statusMessage, "trailers", trailers);
            assert.deepEqual(trailers.get("grpc-status"), ["12"]);
            assert.deepEqual(trailers.get("grpc-message"), [encodeURIComponent("💣")]);
            assert.strictEqual(status, grpc.Code.Unimplemented);
            assert.strictEqual(statusMessage, "💣");
            assert.ok(didGetOnHeaders);
            assert.ok(!didGetOnMessage);
            done();
          });
          client.start();
          client.send(ping);
        });
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:35,代碼來源:client.spec.ts

示例3: it

        it("should report status code for error with headers + trailers", (done) => {
          let didGetOnHeaders = false;
          let didGetOnMessage = false;

          const ping = new PingRequest();
          ping.setFailureType(PingRequest.FailureType.CODE);
          ping.setErrorCodeReturned(12);
          ping.setSendHeaders(withHeaders);
          ping.setSendTrailers(withTrailers);

          grpc.invoke(TestService.PingError, {
            debug: DEBUG,
            transport: transport,
            request: ping,
            host: testHostUrl,
            onHeaders: (headers: grpc.Metadata) => {
              DEBUG && debug("headers", headers);
              didGetOnHeaders = true;
            },
            onMessage: (message: Empty) => {
              didGetOnMessage = true;
            },
            onEnd: (status: grpc.Code, statusMessage: string, trailers: grpc.Metadata) => {
              DEBUG && debug("status", status, "statusMessage", statusMessage, "trailers", trailers);
              assert.deepEqual(trailers.get("grpc-status"), ["12"]);
              assert.deepEqual(trailers.get("grpc-message"), ["Intentionally returning error for PingError"]);
              assert.strictEqual(status, grpc.Code.Unimplemented);
              assert.strictEqual(statusMessage, "Intentionally returning error for PingError");
              assert.ok(didGetOnHeaders);
              assert.ok(!didGetOnMessage);
              done();
            }
          });
        });
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:34,代碼來源:invoke.spec.ts

示例4: continueStream

            continueStream(testHostUrl, streamIdentifier, (status) => {
              DEBUG && debug("checkAbort.continueStream.status", status);

              const checkStreamClosedRequest = new CheckStreamClosedRequest();
              checkStreamClosedRequest.setStreamIdentifier(streamIdentifier);
              grpc.unary(TestUtilService.CheckStreamClosed, {
                debug: DEBUG,
                request: checkStreamClosedRequest,
                host: testHostUrl,
                onEnd: ({message}) => {
                  const closed = ( message as CheckStreamClosedResponse ).getClosed();
                  DEBUG && debug("closed", closed);
                  if (closed) {
                    done();
                  } else {
                    if (attempt >= maxAbortChecks) {
                      assert.ok(closed, `server did not observe connection closure within ${maxAbortChecks} seconds`);
                      done();
                    } else {
                      setTimeout(() => {
                        checkAbort(attempt + 1);
                      }, 1000);
                    }
                  }
                },
              })
            });
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:27,代碼來源:cancellation.spec.ts

示例5: it

      it("should allow the caller to abort an rpc before it completes", () => {
        let transportCancelFuncInvoked = false;

        const cancellationSpyTransport = () => {
          return {
            sendMessage: () => {
            },
            finishSend() {
            },
            start: () => {
            },
            cancel: () => {
              transportCancelFuncInvoked = true;
            },
          }
        };

        const ping = new PingRequest();
        ping.setValue("hello world");

        const reqObj = grpc.invoke(TestService.Ping, {
          debug: DEBUG,
          request: ping,
          host: testHostUrl,
          transport: cancellationSpyTransport,
          onEnd: (status: grpc.Code, statusMessage: string, trailers: grpc.Metadata) => {
          },
        });

        reqObj.close();

        assert.equal(transportCancelFuncInvoked, true, "transport's cancel func must be invoked");
      });
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:33,代碼來源:cancellation.spec.ts

示例6: it

        it(`should make a unary request`, (done) => {
          const ping = new PingRequest();
          ping.setValue("hello world");
          ping.setSendHeaders(withHeaders);
          ping.setSendTrailers(withTrailers);

          grpc.unary(TestService.Ping, {
            debug: DEBUG,
            transport: transport,
            request: ping,
            host: testHostUrl,
            onEnd: ({status, statusMessage, headers, message, trailers}) => {
              DEBUG && debug("status", status, "statusMessage", statusMessage, "headers", headers, "res", message, "trailers", trailers);
              assert.strictEqual(status, grpc.Code.OK, "expected OK (0)");
              assert.isNotOk(statusMessage, "expected no message");
              if (withHeaders) {
                assert.deepEqual(headers.get("HeaderTestKey1"), ["ServerValue1"]);
                assert.deepEqual(headers.get("HeaderTestKey2"), ["ServerValue2"]);
              }
              assert.ok(message instanceof PingResponse);
              const asPingResponse: PingResponse = message as PingResponse;
              assert.deepEqual(asPingResponse.getValue(), "hello world");
              assert.deepEqual(asPingResponse.getCounter(), 252);
              if (withTrailers) {
                assert.deepEqual(trailers.get("TrailerTestKey1"), ["ServerValue1"]);
                assert.deepEqual(trailers.get("TrailerTestKey2"), ["ServerValue2"]);
              }
              done();
            }
          });
        });
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:31,代碼來源:unary.spec.ts

示例7:

 assert.throw(() => {
   const client = grpc.client(TestService.Ping, {
     debug: DEBUG,
     transport: transport,
     host: testHostUrl,
   });
   client.send(ping);
 }, "Client not started - .start() must be called before .send()");
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:8,代碼來源:client.spec.ts

示例8: runWithSupportedTransports

export function runWithSupportedTransports(cb: (transport: grpc.TransportFactory | undefined) => void) {
  const transports: {[key: string]: grpc.TransportFactory | undefined} = {
    "httpTransport": undefined
  };

  if (process.env.BROWSER === "nodejs") {
    grpc.setDefaultTransport(NodeHttpTransport());
  }

  if (!process.env.DISABLE_WEBSOCKET_TESTS) {
    transports["websocketTransport"] = grpc.WebsocketTransport();
  }

  for (let transportName in transports) {
    describe(transportName, () => {
      cb(transports[transportName]);
    })
  }
}
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:19,代碼來源:testRpcCombinations.ts

示例9: debug

 assert.throw(() => {
   grpc.unary(TestService.PingStream as any as grpc.UnaryMethodDefinition<PingRequest, PingResponse>, {
     debug: DEBUG,
     transport: transport,
     request: ping,
     host: testHostUrl,
     onEnd: ({status, statusMessage, headers, message, trailers}) => {
       DEBUG && debug("status", status, "statusMessage", statusMessage, "headers", headers, "res", message, "trailers", trailers);
     }
   })
 }, ".unary cannot be used with client-streaming methods. Use .client instead.");
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:11,代碼來源:unary.spec.ts

示例10: debug

 assert.throw(() => {
   grpc.invoke(TestService.PingStream, {
     debug: DEBUG,
     transport: transport,
     request: ping,
     host: testHostUrl,
     onHeaders: (headers: grpc.Metadata) => {
       DEBUG && debug("headers", headers);
     },
     onMessage: (message: PingResponse) => {
       DEBUG && debug("message", message);
     },
     onEnd: (status: grpc.Code, statusMessage: string, trailers: grpc.Metadata) => {
       DEBUG && debug("status", status, "statusMessage", statusMessage);
     }
   })
 }, ".invoke cannot be used with client-streaming methods. Use .client instead.");
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:17,代碼來源:invoke.spec.ts

示例11: getBook

function getBook() {
  const getBookRequest = new GetBookRequest();
  getBookRequest.setIsbn(60929871);
  grpc.unary(BookService.GetBook, {
    request: getBookRequest,
    host: host,
    onEnd: res => {
      const { status, statusMessage, headers, message, trailers } = res;
      console.log("getBook.onEnd.status", status, statusMessage);
      console.log("getBook.onEnd.headers", headers);
      if (status === grpc.Code.OK && message) {
        console.log("getBook.onEnd.message", message.toObject());
      }
      console.log("getBook.onEnd.trailers", trailers);
      queryBooks();
    }
  });
}
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:18,代碼來源:index.ts

示例12: queryBooks

function queryBooks() {
  const queryBooksRequest = new QueryBooksRequest();
  queryBooksRequest.setAuthorPrefix("Geor");
  const client = grpc.client(BookService.QueryBooks, {
    host: host,
  });
  client.onHeaders((headers: grpc.Metadata) => {
    console.log("queryBooks.onHeaders", headers);
  });
  client.onMessage((message: Book) => {
    console.log("queryBooks.onMessage", message.toObject());
  });
  client.onEnd((code: grpc.Code, msg: string, trailers: grpc.Metadata) => {
    console.log("queryBooks.onEnd", code, msg, trailers);
  });
  client.start();
  client.send(queryBooksRequest);
}
開發者ID:mwitkow,項目名稱:grpc-browser-compat,代碼行數:18,代碼來源:index.ts


注:本文中的@improbable-eng/grpc-web.grpc類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。