جی آر پی سی grpc
سرور و کارخواه gRPC روی HTTP/2: فراخوان ساده و جریانی، فراداده و کدهای وضعیت.
واردسازی جی آر پی سی
gRPC روشی برای فراخوان دور است که روی HTTP/2 کار میکند و در سرویسهای ریزخدمت رایج است. در سمت سرور هر متد را با مسیرش، مثل /demo.Greeter/SayHello، ثبت میکنید؛ روال متد پیام کارخواه را با دریافت میخواند، با ارسال جواب میدهد و با تنظیم وضعیت یا شکست تمامش میکند.
در سمت کارخواه، فراخوان یگانه یک درخواست ساده است و برای جریانها شروع فراخوان، ارسال پیام، دریافت پیام و پایان فراخوان را به کار میبرید. پیامها بایتاند؛ آنها را معمولاً با پروتوباف میسازید.
گونهها
وضعیت Status
ساختار وضعیت| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| code | code | صحیح = 0 | کد. |
| message | message | رشته = "" | پیام. |
واردسازی جی آر پی سی
واردسازی فشرده سازی
واردسازی همگام سازی
ناپایا سرور := جی آر پی سی.سرور جدید(۰)
ناپایا آماده := همگام سازی.گروه انتظار جدید()
روال سلام(ف: صحیح۶۴):
ناپایا سالم := نادرست
نام := جی آر پی سی.دریافت متن(ف، سالم)
_ := جی آر پی سی.ارسال متن(ف، "سلام " + نام)
جی آر پی سی.تنظیم وضعیت(ف، جی آر پی سی.وضعیت بدون خطا، "")
پایان
روال شمارش(ف: صحیح۶۴):
ناپایا سالم := نادرست
_ := جی آر پی سی.دریافت(ف، سالم)
تکرار ۳ در ش:
_ := جی آر پی سی.ارسال(ف، فشرده سازی.بافر از رشته("" + (۳ - ش)))
پایان
جی آر پی سی.تنظیم وضعیت(ف، جی آر پی سی.وضعیت بدون خطا، "")
پایان
روال ردیابی(ف: صحیح۶۴):
ناپایا سالم := نادرست
_ := جی آر پی سی.دریافت متن(ف، سالم)
_ := جی آر پی سی.ارسال متن(ف، جی آر پی سی.دریافت فراداده(جی آر پی سی.فراداده فراخوان(ف)، "x-trace") + " " + جی آر پی سی.مسیر فراخوان(ف))
جی آر پی سی.تنظیم وضعیت(ف، جی آر پی سی.وضعیت بدون خطا، "")
پایان
روال ممنوع(ف: صحیح۶۴):
جی آر پی سی.شکست(ف، جی آر پی سی.وضعیت دسترسی رد شد، "توکن منقضی شده")
پایان
روال اجرای سرور():
_ := جی آر پی سی.گوش دادن(سرور)
همگام سازی.اتمام(آماده)
_ := جی آر پی سی.خدمت به تعداد(سرور، ۱)
پایان
روال ریشه:
مسیر سلام := جی آر پی سی.مسیر متد("demo.Greeter"، "SayHello")
سرچاپ مسیر سلام
جی آر پی سی.ثبت متد(مسیر سلام، سلام)
جی آر پی سی.ثبت متد جریانی("/demo.Greeter/Countdown"، شمارش، نادرست، درست)
جی آر پی سی.ثبت متد("/demo.Greeter/Trace"، ردیابی)
جی آر پی سی.ثبت متد("/demo.Greeter/Admin"، ممنوع)
سرچاپ جی آر پی سی.تعداد متدها()، جی آر پی سی.متد دارد(مسیر سلام)
همگام سازی.افزودن(آماده، ۱)
ن := spawn(اجرای سرور)
همگام سازی.انتظار(آماده)
ناپایا ک := جی آر پی سی.اتصال("127.0.0.1"، جی آر پی سی.درگاه(سرور))
جی آر پی سی.تنظیم مهلت(ک، ۵۰۰۰)
سرچاپ جی آر پی سی.کانال معتبر(ک)
ناپایا نتیجه := جی آر پی سی.وضعیت {}
سرچاپ جی آر پی سی.فراخوان یگانه متنی(ک، مسیر سلام، "مریم"، نتیجه)، جی آر پی سی.وضعیت موفق(نتیجه)
ف := جی آر پی سی.شروع فراخوان(ک، "/demo.Greeter/Countdown"، جی آر پی سی.فراداده جدید())
_ := جی آر پی سی.ارسال پیام(ک، ف، فشرده سازی.بافر از رشته("go")، درست)
ناپایا ادامه := درست
تا ادامه:
ناپایا سالم := نادرست
پ := جی آر پی سی.دریافت پیام(ک، ف، سالم)
اگر وارونه سالم:
ادامه = نادرست
وگرنه:
سرچاپ "پیام:"، فشرده سازی.بافر به رشته(پ)
پایان
پایان
سرچاپ جی آر پی سی.تعداد فراداده(جی آر پی سی.سرآیندهای فراخوان(ک، ف))
سرچاپ جی آر پی سی.متن وضعیت(جی آر پی سی.پایان فراخوان(ک، ف))
ناپایا فد := جی آر پی سی.فراداده جدید()
_ := جی آر پی سی.افزودن فراداده(فد، "x-trace"، "t-42")
ناپایا نتیجه۲ := جی آر پی سی.وضعیت {}
پاسخ := جی آر پی سی.فراخوان یگانه(ک، "/demo.Greeter/Trace"، فشرده سازی.بافر از رشته("x")، فد، نتیجه۲)
سرچاپ فشرده سازی.بافر به رشته(پاسخ)
ف۲ := جی آر پی سی.شروع فراخوان(ک، "/demo.Greeter/Trace"، فد)
_ := جی آر پی سی.ارسال پیام(ک، ف۲، فشرده سازی.بافر از رشته("y")، نادرست)
_ := جی آر پی سی.بستن ارسال(ک، ف۲)
ناپایا سالم۲ := نادرست
_ := جی آر پی سی.دریافت پیام(ک، ف۲، سالم۲)
_ := جی آر پی سی.پایان فراخوان(ک، ف۲)
سرچاپ سالم۲، جی آر پی سی.دنبالههای فراخوان(ک، ف۲).items.طول() >= ۰
ناپایا نتیجه۳ := جی آر پی سی.وضعیت {}
_ := جی آر پی سی.فراخوان یگانه متنی(ک، "/demo.Greeter/Admin"، ""، نتیجه۳)
سرچاپ نتیجه۳.code، نتیجه۳.message، جی آر پی سی.نام وضعیت(نتیجه۳.code)
ناپایا نتیجه۴ := جی آر پی سی.وضعیت {}
_ := جی آر پی سی.فراخوان یگانه متنی(ک، "/demo.Greeter/Nope"، ""، نتیجه۴)
سرچاپ جی آر پی سی.متن وضعیت(نتیجه۴)
جی آر پی سی.بستن کانال(ک)
join(ن)
جی آر پی سی.توقف سرور(سرور)
جی آر پی سی.بازنشانی متدها()
سرچاپ جی آر پی سی.تعداد متدها()
پایانمدخل فراداده MDEntry
ساختار مدخل فراداده| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| key | key | رشته = "" | کلید. |
| value | value | رشته = "" | مقدار. |
| binary | binary | منطقی = نادرست | دودویی است. |
واردسازی جی آر پی سی
واردسازی فشرده سازی
واردسازی شبکه.اچ تی تی پی۲
روال ریشه:
یک := جی آر پی سی.قاببندی پیام متنی("سلام")
سرچاپ یک.len، فشرده سازی.دریافت بایت(یک، ۰)، فشرده سازی.دریافت بایت(یک، ۴)
ناپایا همه := فشرده سازی.بافر بایت جدید()
فشرده سازی.افزودن بافر(همه، یک)
فشرده سازی.افزودن بافر(همه، جی آر پی سی.قاببندی پیام(فشرده سازی.بافر از رشته("دو")، نادرست))
فشرده سازی.افزودن بافر(همه، جی آر پی سی.قاببندی فشرده(فشرده سازی.بافر از رشته("سه سه سه سه سه")، درست))
سرچاپ جی آر پی سی.تعداد پیامها(همه)، جی آر پی سی.پیام کامل دارد(همه، ۰)
ناپایا جا := ۰
ناپایا سالم := نادرست
تا جی آر پی سی.پیام کامل دارد(همه، جا):
پ := جی آر پی سی.پیام بعدی(همه، جا، سالم)
سرچاپ سالم، فشرده سازی.بافر به رشته(پ)
پایان
ناپایا ف := جی آر پی سی.فراداده جدید()
_ := جی آر پی سی.افزودن فراداده(ف، "authorization"، "Bearer abc")
_ := جی آر پی سی.افزودن فراداده(ف، "x-tag"، "a")
_ := جی آر پی سی.افزودن فراداده(ف، "x-tag"، "b")
_ := جی آر پی سی.افزودن فراداده دودویی(ف، "trace-bin"، "\x01\x02")
سرچاپ جی آر پی سی.تعداد فراداده(ف)، جی آر پی سی.فراداده دارد(ف، "x-tag")، جی آر پی سی.دریافت فراداده(ف، "authorization")
سرچاپ جی آر پی سی.دریافت همه فراداده(ف، "x-tag").طول()
سرچاپ جی آر پی سی.کلید فراداده(ف، ۳)، جی آر پی سی.مقدار فراداده(ف، ۳).طول()
ناپایا سر := اچ تی تی پی۲.فهرست سرآیندها {}
جی آر پی سی.فراداده به سرآیند(ف، سر)
سرچاپ اچ تی تی پی۲.تعداد سرآیندها(سر)، اچ تی تی پی۲.دریافت سرآیند(سر، "trace-bin")
سرچاپ جی آر پی سی.تعداد فراداده(جی آر پی سی.فراداده از سرآیند(سر))
خ := جی آر پی سی.وضعیت جدید(جی آر پی سی.وضعیت یافت نشد، "کاربر ۴۲ نیست")
سرچاپ جی آر پی سی.وضعیت موفق(خ)، جی آر پی سی.متن وضعیت(خ)
پیام := جی آر پی سی.کدگذاری پیام وضعیت("۱۰۰٪ کامل")
سرچاپ پیام، جی آر پی سی.کدگشایی پیام وضعیت(پیام)
سرچاپ جی آر پی سی.قالببندی کد وضعیت(۱۴)، جی آر پی سی.تجزیه کد وضعیت("14")، جی آر پی سی.تجزیه کد وضعیت("x")
سرچاپ جی آر پی سی.نام وضعیت(جی آر پی سی.وضعیت گذشت مهلت)، جی آر پی سی.نام وضعیت(جی آر پی سی.وضعیت احراز نشده)
سرچاپ جی آر پی سی.وضعیت لغو شده، جی آر پی سی.وضعیت ناشناخته، جی آر پی سی.وضعیت آرگومان نامعتبر، جی آر پی سی.وضعیت از پیش موجود
سرچاپ جی آر پی سی.وضعیت منابع تمام شد، جی آر پی سی.وضعیت پیششرط ناموفق، جی آر پی سی.وضعیت قطع شده، جی آر پی سی.وضعیت خارج از محدوده
سرچاپ جی آر پی سی.وضعیت پیادهسازی نشده، جی آر پی سی.وضعیت خطای داخلی، جی آر پی سی.وضعیت ناموجود، جی آر پی سی.وضعیت از دست رفتن داده
سرچاپ جی آر پی سی.نوع محتوا، جی آر پی سی.نوع محتوای پروتو، جی آر پی سی.نوع محتوای جیسون
سرچاپ جی آر پی سی.بدون فشردهسازی، جی آر پی سی.فشردهسازی جی زیپ، جی آر پی سی.بیشینه قابها، جی آر پی سی.بیشینه اندازه پیام
پایانفراداده Metadata
ساختار فراداده| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| items | items | وکتور<مدخل فراداده> | مدخلها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
زمینه فراخوان CallCtx
ساختار زمینه فراخوان| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| stream_id | stream_id | صحیح = 0 | شناسهی جریان. |
| method | method | رشته = "" | مسیر متد. |
| headers | headers | http2.HeaderList | سرآیندها. |
| recv | recv | compress.ByteBuf | دادهی دریافتی. |
| recv_pos | recv_pos | صحیح = 0 | جای خواندن. |
| client_done | client_done | منطقی = نادرست | کارخواه ارسال را بسته. |
| sent_headers | sent_headers | منطقی = نادرست | سرآیندهای پاسخ فرستاده شده. |
| status | status | وضعیت | وضعیت. |
| busy | busy | منطقی = نادرست | در استفاده. |
| failed | failed | منطقی = نادرست | شکست خورد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
جدول فراخوانها CallTable
ساختار جدول فراخوانها| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| items | items | وکتور<زمینه فراخوان> | فراخوانها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
توصیف متد MethodDesc
ساختار توصیف متد| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| path | path | رشته = "" | مسیر. |
| fn | fn | صحیح۶۴ = 0 | روال. |
| client_stream | client_stream | منطقی = نادرست | کارخواه جریانی میفرستد. |
| server_stream | server_stream | منطقی = نادرست | سرور جریانی میفرستد. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
جدول متدها MethodTable
ساختار جدول متدها| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| items | items | وکتور<توصیف متد> | متدها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
مکاننما Cursor
ساختار مکاننما| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| stream_id | stream_id | صحیح = 0 | شناسهی جریان. |
| pos | pos | صحیح = 0 | جای خواندن. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
جدول مکاننماها CursorTable
ساختار جدول مکاننماها| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| items | items | وکتور<مکاننما> | مکاننماها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
کانال Channel
ساختار کانال| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| conn | conn | http2.Conn | اتصال HTTP/2. |
| authority | authority | رشته = "" | میزبان و درگاه. |
| scheme | scheme | رشته = "http" | طرح: http یا https. |
| user_agent | user_agent | رشته = "salam-grpc/1.0" | شناسهی کارخواه. |
| timeout_ms | timeout_ms | صحیح = 0 | مهلت هر فراخوان. |
| use_gzip | use_gzip | منطقی = نادرست | پیامها فشرده فرستاده شوند. |
| cursors | cursors | جدول مکاننماها | جای خواندن هر جریان. |
| ok | ok | منطقی = نادرست | سالم است. |
| last_error | last_error | رشته = "" | آخرین خطا. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
سرور جی آر پی سی Server
ساختار سرور جی آر پی سی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| port | port | صحیح = 0 | درگاه. |
| listen_fd | listen_fd | صحیح۶۴ = -1 | سوکت گوش دادن. |
| running | running | منطقی = نادرست | در حال اجرا. |
| served | served | صحیح = 0 | شمار اتصالهای پاسخداده. |
نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
پایاها و متغیرها
وضعیت بدون خطا GRPC_OK
پایا وضعیت بدون خطا: صحیح۳۲ = 0نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
وضعیت لغو شده GRPC_CANCELLED
پایا وضعیت لغو شده: صحیح۳۲ = 1نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت ناشناخته GRPC_UNKNOWN
پایا وضعیت ناشناخته: صحیح۳۲ = 2نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت آرگومان نامعتبر GRPC_INVALID_ARGUMENT
پایا وضعیت آرگومان نامعتبر: صحیح۳۲ = 3نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت گذشت مهلت GRPC_DEADLINE_EXCEEDED
پایا وضعیت گذشت مهلت: صحیح۳۲ = 4نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت یافت نشد GRPC_NOT_FOUND
پایا وضعیت یافت نشد: صحیح۳۲ = 5نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت از پیش موجود GRPC_ALREADY_EXISTS
پایا وضعیت از پیش موجود: صحیح۳۲ = 6نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت دسترسی رد شد GRPC_PERMISSION_DENIED
پایا وضعیت دسترسی رد شد: صحیح۳۲ = 7نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
وضعیت منابع تمام شد GRPC_RESOURCE_EXHAUSTED
پایا وضعیت منابع تمام شد: صحیح۳۲ = 8نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت پیششرط ناموفق GRPC_FAILED_PRECONDITION
پایا وضعیت پیششرط ناموفق: صحیح۳۲ = 9نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت قطع شده GRPC_ABORTED
پایا وضعیت قطع شده: صحیح۳۲ = 10نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت خارج از محدوده GRPC_OUT_OF_RANGE
پایا وضعیت خارج از محدوده: صحیح۳۲ = 11نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت پیادهسازی نشده GRPC_UNIMPLEMENTED
پایا وضعیت پیادهسازی نشده: صحیح۳۲ = 12نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت خطای داخلی GRPC_INTERNAL
پایا وضعیت خطای داخلی: صحیح۳۲ = 13نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت ناموجود GRPC_UNAVAILABLE
پایا وضعیت ناموجود: صحیح۳۲ = 14نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت از دست رفتن داده GRPC_DATA_LOSS
پایا وضعیت از دست رفتن داده: صحیح۳۲ = 15نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت احراز نشده GRPC_UNAUTHENTICATED
پایا وضعیت احراز نشده: صحیح۳۲ = 16نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
نوع محتوا GRPC_CONTENT_TYPE
پایا نوع محتوا: رشته = "application/grpc"نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
نوع محتوای پروتو GRPC_CONTENT_TYPE_PROTO
پایا نوع محتوای پروتو: رشته = "application/grpc+proto"نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
نوع محتوای جیسون GRPC_CONTENT_TYPE_JSON
پایا نوع محتوای جیسون: رشته = "application/grpc+json"نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
بدون فشردهسازی GRPC_COMP_NONE
پایا بدون فشردهسازی: صحیح۳۲ = 0نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
فشردهسازی جی زیپ GRPC_COMP_GZIP
پایا فشردهسازی جی زیپ: صحیح۳۲ = 1نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
بیشینه قابها GRPC_MAX_FRAMES
پایا بیشینه قابها: صحیح۳۲ = 100000نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
بیشینه اندازه پیام GRPC_MAX_MESSAGE
پایا بیشینه اندازه پیام: صحیح۳۲ = 4194304نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
روالها
فراداده جدید NewMetadata
روال فراداده جدید(): فرادادهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
افزودن فراداده MDAdd
روال افزودن فراداده(md &: فراداده، key: رشته، value: رشته): منطقیcontent-type، رد میشوند.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
افزودن فراداده دودویی MDAddBinary
روال افزودن فراداده دودویی(md &: فراداده، key: رشته، value: رشته): منطقی-bin تمام شود و مقدار با بیس۶۴ فرستاده میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
دریافت فراداده MDGet
روال دریافت فراداده(md: فراداده، key: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
فراداده دارد MDHas
روال فراداده دارد(md: فراداده، key: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
دریافت همه فراداده MDGetAll
روال دریافت همه فراداده(md: فراداده، key: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
تعداد فراداده MDCount
روال تعداد فراداده(md: فراداده): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
کلید فراداده MDKeyAt
روال کلید فراداده(md: فراداده، i: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
مقدار فراداده MDValueAt
روال مقدار فراداده(md: فراداده، i: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
فراداده به سرآیند MDToHeaders
روال فراداده به سرآیند(md: فراداده، hl &: http2.HeaderList)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
فراداده از سرآیند MDFromHeaders
روال فراداده از سرآیند(hl: http2.HeaderList): فرادادهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت جدید NewStatus
روال وضعیت جدید(code: صحیح، message: رشته): وضعیتنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
وضعیت موفق StatusOk
روال وضعیت موفق(s: وضعیت): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
مسیر متد MethodPath
روال مسیر متد(service: رشته، method: رشته): رشته/demo.Greeter/SayHello.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
قاببندی پیام FrameMessage
روال قاببندی پیام(msg: compress.ByteBuf، compressed: منطقی): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
قاببندی فشرده FrameMessageGzip
روال قاببندی فشرده(msg: compress.ByteBuf، use_gzip: منطقی): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
قاببندی پیام متنی FrameMessageStr
روال قاببندی پیام متنی(msg: رشته): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
پیام کامل دارد HasMessage
روال پیام کامل دارد(data: compress.ByteBuf، pos: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
پیام بعدی NextMessage
روال پیام بعدی(data: compress.ByteBuf، pos &: صحیح، ok &: منطقی): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
تعداد پیامها MessageCount
روال تعداد پیامها(data: compress.ByteBuf): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
اتصال Dial
روال اتصال(host: رشته، port: صحیح): کانالنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
اتصال امن DialTLS
روال اتصال امن(host: رشته، port: صحیح): کانالواردسازی جی آر پی سی
واردسازی شبکه.تی سی پی شبکه
روال پژواک(ف: صحیح۶۴):
ناپایا سالم := نادرست
_ := جی آر پی سی.ارسال متن(ف، جی آر پی سی.دریافت متن(ف، سالم))
پایان
روال ریشه:
ناپایا ک := جی آر پی سی.اتصال امن("api.example.com"، ۴۴۳)
اگر وارونه جی آر پی سی.کانال معتبر(ک):
سرچاپ جی آر پی سی.خطای کانال(ک)
برگشت
پایان
جی آر پی سی.فعالسازی فشردهسازی(ک، درست)
ناپایا نتیجه := جی آر پی سی.وضعیت {}
سرچاپ جی آر پی سی.فراخوان یگانه متنی(ک، "/demo.Echo/Say"، "سلام"، نتیجه)
جی آر پی سی.بستن کانال(ک)
جی آر پی سی.ثبت متد("/demo.Echo/Say"، پژواک)
ناپایا س := جی آر پی سی.سرور جدید(۵۰۰۵۱)
اگر جی آر پی سی.گوش دادن(س):
جی آر پی سی.خدمت(س)
پایان
ا := تی سی پی شبکه.شماره گیری("127.0.0.1"، ۵۰۰۵۲)
_ := جی آر پی سی.خدمت به اتصال(ا.fd)
پایانکانال معتبر ChannelOk
روال کانال معتبر(ch: کانال): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
خطای کانال ChannelError
روال خطای کانال(ch: کانال): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-TLS.salam
تنظیم مهلت SetTimeout
روال تنظیم مهلت(ch &: کانال، ms: صحیح)grpc-timeout به سرور هم گفته میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
فعالسازی فشردهسازی SetGzip
روال فعالسازی فشردهسازی(ch &: کانال، enable: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-TLS.salam
بستن کانال CloseChannel
روال بستن کانال(ch &: کانال)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
شروع فراخوان StartCall
روال شروع فراخوان(ch &: کانال، path: رشته، md: فراداده): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
ارسال پیام SendMessage
روال ارسال پیام(ch &: کانال، sid: صحیح، msg: compress.ByteBuf، last: منطقی): منطقیدرست در آخرین پیام، ارسال بسته میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
بستن ارسال CloseSend
روال بستن ارسال(ch &: کانال، sid: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
دریافت پیام RecvMessage
روال دریافت پیام(ch &: کانال، sid: صحیح، ok &: منطقی): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
پایان فراخوان FinishCall
روال پایان فراخوان(ch &: کانال، sid: صحیح): وضعیتنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
سرآیندهای فراخوان CallHeaders
روال سرآیندهای فراخوان(ch: کانال، sid: صحیح): فرادادهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
دنبالههای فراخوان CallTrailers
روال دنبالههای فراخوان(ch: کانال، sid: صحیح): فرادادهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
فراخوان یگانه UnaryCall
روال فراخوان یگانه(ch &: کانال، path: رشته، req: compress.ByteBuf، md: فراداده، st &: وضعیت): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
فراخوان یگانه متنی UnaryCallStr
روال فراخوان یگانه متنی(ch &: کانال، path: رشته، req: رشته، st &: وضعیت): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
سرور جدید NewServer
روال سرور جدید(port: صحیح): سرور جی آر پی سینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
ثبت متد RegisterMethod
روال ثبت متد(path: رشته، fn: صحیح۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
ثبت متد جریانی RegisterStreamMethod
روال ثبت متد جریانی(path: رشته، fn: صحیح۶۴، client_stream: منطقی، server_stream: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
تعداد متدها MethodCount
روال تعداد متدها(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
متد دارد HasMethod
روال متد دارد(path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
بازنشانی متدها ResetMethods
روال بازنشانی متدها()نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
مسیر فراخوان CallPath
روال مسیر فراخوان(slot: صحیح۶۴): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
فراداده فراخوان CallMetadata
روال فراداده فراخوان(slot: صحیح۶۴): فرادادهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
دریافت Recv
روال دریافت(slot: صحیح۶۴، ok &: منطقی): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
دریافت متن RecvStr
روال دریافت متن(slot: صحیح۶۴، ok &: منطقی): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
ارسال Send
روال ارسال(slot: صحیح۶۴، msg: compress.ByteBuf): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
ارسال متن SendStr
روال ارسال متن(slot: صحیح۶۴، msg: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
تنظیم وضعیت SetStatus
روال تنظیم وضعیت(slot: صحیح۶۴، code: صحیح، message: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
شکست Fail
روال شکست(slot: صحیح۶۴، code: صحیح، message: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
گوش دادن Listen
روال گوش دادن(s &: سرور جی آر پی سی): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
درگاه Port
روال درگاه(s: سرور جی آر پی سی): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
خدمت به اتصال ServeConn
روال خدمت به اتصال(fd: صحیح۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-TLS.salam
خدمت به تعداد ServeCount
روال خدمت به تعداد(s &: سرور جی آر پی سی، n: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
خدمت Serve
روال خدمت(s &: سرور جی آر پی سی)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
توقف سرور StopServer
روال توقف سرور(s &: سرور جی آر پی سی)نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
نام وضعیت StatusName
روال نام وضعیت(code: صحیح): رشتهNOT_FOUND.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam
کدگذاری پیام وضعیت EncodeStatusMessage
روال کدگذاری پیام وضعیت(msg: رشته): رشتهgrpc-message کدگذاری درصدی میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
کدگشایی پیام وضعیت DecodeStatusMessage
روال کدگشایی پیام وضعیت(msg: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
قالببندی کد وضعیت FormatStatusCode
روال قالببندی کد وضعیت(code: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
تجزیه کد وضعیت ParseStatusCode
روال تجزیه کد وضعیت(text: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Wire.salam
متن وضعیت StatusString
روال متن وضعیت(s: وضعیت): رشتهNAME: message.نمونهی این مورد همراه با موارد بالاتر آمده است: grpc-Calls.salam