کتابخانه‌ی استاندارد · شبکه

نتس net/nats

کلاینت NATS با سرآیند، درخواست و پاسخ، و جریان‌ها، مصرف‌کننده‌ها و تاییدیه‌های جت‌استریم.

واردسازی net.nats

NATS یک گذرگاه پیام کوچک و سریع است. این بسته کلاینتی برای آن است که با خود سلام نوشته شده و به کتابخانه‌ی بومی نیاز ندارد. برقراری اتصال از یک نشانی مثل nats://127.0.0.1:4222 یک اتصال نتس باز می‌کند و برقراری اتصال با گزینه یک مقدار گزینه ها هم می‌گیرد (با گزینه های پیش‌فرض شروع کنید) و شما روی یک موضوع منتشر می‌کنید، مشترک آن می‌شوید یا درخواستی می‌فرستید و پاسخ را می‌گیرید. موضوع‌ها نام‌های نقطه‌دار مثل orders.created هستند و موضوع معتبر پیش از استفاده می‌گوید نام پذیرفتنی است یا نه.

سرآیندها

سرآیند کنار بار پیام جفت‌های کلید و مقدار را می‌برد. سرآیند تازه یکی می‌سازد، افزودن سرآیند مقدار می‌افزاید، تنظیم سرآیند مقدارهای یک کلید را جایگزین می‌کند، گرفتن سرآیند و مقدارهای سرآیند آن‌ها را می‌خوانند و رمزگذاری سرآیند و تجزیه سرآیند سرآیند را به شکل سیمی و برعکس تبدیل می‌کنند.

net-nats-headers.salam
واردسازی شبکه.نتس

تابع ریشه:
    ناپایا h := نتس.سرآیند تازه()
    نتس.افزودن سرآیند(h، "Trace"، "a1")
    نتس.افزودن سرآیند(h، "Trace"، "b2")
    نتس.تنظیم سرآیند(h، "Tenant"، "acme")
    سرچاپ نتس.گرفتن سرآیند(h، "Tenant")، نتس.شمار سرآیند(h)، نتس.سرآیند دارد(h، "Trace")
    سرچاپ نتس.موضوع معتبر("orders.created")، نتس.موضوع معتبر("bad subject")
پایان
خروجیacme 3 true true false

جت‌استریم

جت‌استریم پیام‌ها را نگه می‌دارد. افزودن جریان جریانی روی چند موضوع می‌سازد، انتشار جت‌استریم منتشر می‌کند و پس از ذخیره‌ی پیام یک تاییدیه انتشار می‌دهد، و افزودن مصرف‌کننده با واکشی پیام‌ها را دسته‌دسته می‌خواند. پس از پردازش تایید را صدا بزنید؛ رد تحویل دوباره می‌خواهد، ادامه کار مهلت را تمدید می‌کند و خاتمه از پیام صرف‌نظر می‌کند. اطلاعات جریان، پاکسازی جریان و حذف جریان بررسی و پاک‌سازی می‌کنند.

موضوع‌ها و جایگزین‌ها

در اشتراک می‌توان از دو جایگزین استفاده کرد: * دقیقاً یک واژه است و > یک یا چند واژه در انتهای موضوع. پس orders.* با orders.created جور است ولی با orders.created.eu نه، و orders.> با هر دو جور است ولی با خود orders نه. تطبیق موضوع همین قاعده را محلی اجرا می‌کند و در آزمون‌ها به کار می‌آید. موضوع معتبر نام خالی، فاصله و نویسه‌های کنترلی، نقطه ابتدا یا انتها و واژه خالی میان دو نقطه را رد می‌کند. هیچ‌کدام کارگزار نمی‌خواهند.

net-nats-guide-subjects.salam
واردسازی شبکه.نتس

تابع show(pattern: رشته، subject: رشته):
    سرچاپ pattern، subject، نتس.تطبیق موضوع(pattern، subject)
پایان

تابع ریشه:
    show("orders.*"، "orders.created")
    show("orders.*"، "orders.created.eu")
    show("orders.>"، "orders.created.eu")
    show("orders.>"، "orders")
    show("*.created"، "orders.created")
    show("orders.created"، "orders.created")
    سرچاپ نتس.موضوع معتبر("orders..created")، نتس.موضوع معتبر(".orders")، نتس.موضوع معتبر("orders.")
    سرچاپ نتس.موضوع معتبر("")، نتس.موضوع معتبر("a b")، نتس.موضوع معتبر("orders.>")
پایان
خروجیorders.* orders.created true orders.* orders.created.eu false orders.> orders.created.eu true orders.> orders false *.created orders.created true orders.created orders.created true false false false false false true

درخواست و پاسخ

درخواست پیامی با یک موضوع پاسخ خصوصی می‌فرستد و منتظر یک جواب می‌ماند. نتیجه یک پیام است، پس پیش از خواندن داده مقدار سالم را ببینید. اگر هیچ‌کس روی موضوع مشترک نباشد، کارگزار همین را خبر می‌دهد و خطا برابر no responders است؛ اگر کسی مشترک باشد ولی به موقع جواب ندهد، timeout است. اشتراک پاسخگو تابعی می‌گیرد که از پیام به متن پاسخ می‌رسد. چیزی در پس‌زمینه اجرا نمی‌شود: دستگیره‌ها وقتی اجرا می‌شوند که اتصال پردازش شود و درخواست، پیام بعدی، تخلیه و پردازش همه این کار را می‌کنند. برای پاسخ دستی با اشتراک مشترک شوید و پاسخ را با پیام دریافتی صدا بزنید.

net-nats-guide-request.salam
واردسازی شبکه.نتس

تابع ریشه:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    _s := نتس.اشتراک پاسخگو(nc، "svc.shout"، ""، (m: نتس.پیام): برگشت m.داده + "!" پایان)

    r := نتس.درخواست(nc، "svc.shout"، "hello"، 1000)
    اگر r.سالم:
        سرچاپ "reply:"، r.داده
    وگرنه:
        سرچاپ "failed:"، r.خطا
    پایان

    gone := نتس.درخواست(nc، "svc.nobody"، "x"، 1000)
    سرچاپ gone.سالم، gone.خطا

    slow := نتس.درخواست(nc، "svc.silent"، "x"، 150)
    سرچاپ slow.سالم، slow.خطا

    نتس.بستن(nc)
    برگشت 0
پایان

گروه صف و خروج تمیز

اشتراک‌هایی که نام صف یکسان دارند یک گروه‌اند و کارگزار هر پیام را فقط به یکی از آن‌ها می‌دهد؛ همین‌طور چند کارگر کارها را بین خود تقسیم می‌کنند. اینکه کدام عضو کدام پیام را بگیرد با کارگزار است، پس شمار پیام‌های پردازش‌شده را بشمارید، نه اینکه چه کسی پردازش کرده. پیام بعدی تا مهلت داده‌شده به میلی‌ثانیه صبر می‌کند و اگر چیزی نرسد پیامی با سالم نادرست و خطا برابر timeout برمی‌گرداند. لغو خودکار اشتراک اشتراک را پس از آن تعداد تحویل برمی‌دارد. تخلیه کامل اشتراک‌ها را متوقف می‌کند، آنچه مانده را می‌فرستد و اتصال را می‌بندد، پس آخرین فراخوانی درست همین است.

net-nats-guide-queue.salam
واردسازی شبکه.نتس

تابع ریشه:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    a := نتس.اشتراک صف(nc، "jobs"، "workers")
    b := نتس.اشتراک صف(nc، "jobs"، "workers")
    _ok := نتس.لغو خودکار اشتراک(nc، a، 10)
    تکرار 6 در i:
        _sent := نتس.انتشار(nc، "jobs"، "job " + i)
    پایان
    _flushed := نتس.تخلیه(nc، 1000)

    ناپایا handled := 0
    تکرار 2 در k:
        s := k == 0 ? a : b
        ناپایا m := نتس.پیام بعدی(nc، s، 200)
        تا m.سالم:
            handled += 1
            m = نتس.پیام بعدی(nc، s، 200)
        پایان
    پایان
    سرچاپ "handled"، handled، "subscriptions"، نتس.شمار اشتراک(nc)
    سرچاپ "drained"، نتس.تخلیه کامل(nc، 1000)
    برگشت 0
پایان

گونه‌ها

نتیجه جت‌استریم JSResult

ساختار نتیجه جت‌استریم
پاسخ یک درخواست به رابط جت‌استریم.
نامانگلیسیگونهتوضیح
سالمokمنطقی = نادرستکارگزار درخواست را پذیرفت.
خطاerrرشته = ""متن خطا که در صورت موفقیت خالی است.
کدcodeصحیح = 0کد خطای جت‌استریم که اگر خطایی نباشد ۰ است.
خامrawرشته = ""پاسخ جیسون همان‌طور که کارگزار فرستاده است.
net-nats-JetStream.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه(): صحیح:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    ناپایا subjects := وکتور {} برگردان وکتور<رشته>
    دیرکن subjects.آزادکن()
    subjects.بیفزا("orders.*")
    made := نتس.افزودن جریان(nc، "ORDERS"، subjects، 2000)
    سرچاپ "stream:"، made.سالم، made.خطا
    ack := نتس.انتشار جت‌استریم(nc، "orders.new"، "order 1"، 2000)
    سرچاپ "stored at"، ack.جریان، ack.شماره

    ناپایا h := نتس.سرآیند تازه()
    نتس.افزودن سرآیند(h، "Nats-Msg-Id"، "order-2")
    again := نتس.انتشار جت‌استریم با سرآیند(nc، "orders.new"، h، "order 2"، 2000)
    سرچاپ again.سالم، again.تکراری

    info := نتس.اطلاعات جریان(nc، "ORDERS"، 2000)
    سرچاپ info.پیام ها، info.نخستین شماره، info.واپسین شماره، info.مصرف‌کننده ها
    raw := نتس.درخواست جت‌استریم(nc، "STREAM.NAMES"، ""، 2000)
    سرچاپ raw.سالم

    نتس.افزودن مصرف‌کننده(nc، "ORDERS"، "worker"، "orders.*"، 2000)
    batch := نتس.واکشی(nc، "ORDERS"، "worker"، 10، 1000)
    هر m در batch.پیام ها:
        سرچاپ m.داده، "number"، نتس.شماره پیام جریان(m)
        اگر m.داده برابر "order 1":
            نتس.تایید(nc، m)
        وگرنه m.داده برابر "order 2":
            نتس.رد(nc، m)
        وگرنه:
            نتس.خاتمه(nc، m)
        پایان
    پایان
    اگر batch.پیام ها.طول() بزرگتر 0:
        نتس.ادامه کار(nc، batch.پیام ها.بگیر(0))
    پایان

    نتس.حذف مصرف‌کننده(nc، "ORDERS"، "worker"، 2000)
    نتس.پاکسازی جریان(nc، "ORDERS"، 2000)
    نتس.حذف جریان(nc، "ORDERS"، 2000)
    نتس.بستن(nc)
    برگشت 0
پایان

وضعیت جریان StreamState

ساختار وضعیت جریان
وضعیت یک جریان، همان‌طور که اطلاعات جریان برمی‌گرداند.
نامانگلیسیگونهتوضیح
سالمokمنطقی = نادرستجریان پیدا و خوانده شد.
خطاerrرشته = ""متن خطا که در صورت موفقیت خالی است.
نامnameرشته = ""نام جریان.
پیام هاmessagesصحیح = 0شمار پیام‌هایی که جریان نگه می‌دارد.
بایت هاbytesصحیح = 0شمار بایت‌هایی که جریان نگه می‌دارد.
نخستین شمارهfirst_seqصحیح = 0شماره قدیمی‌ترین پیام.
واپسین شمارهlast_seqصحیح = 0شماره تازه‌ترین پیام.
مصرف‌کننده هاconsumersصحیح = 0شمار مصرف‌کننده‌های جریان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

تاییدیه انتشار PubAck

ساختار تاییدیه انتشار
تاییدیه ذخیره شدن یک پیام در جریان.
نامانگلیسیگونهتوضیح
سالمokمنطقی = نادرستجریان پیام را ذخیره کرد.
خطاerrرشته = ""متن خطا که در صورت موفقیت خالی است.
جریانstreamرشته = ""جریانی که پیام را ذخیره کرد.
شمارهseqصحیح = 0شماره پیام در جریان.
تکراریduplicateمنطقی = نادرستاین پیام از پیش در جریان بود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

دسته Batch

ساختار دسته
پیام‌هایی که یک فراخوانی واکشی برگرداند.
نامانگلیسیگونهتوضیح
پیام هاmsgsوکتور<پیام>پیام‌ها، که ممکن است کمتر از مقدار درخواستی باشند.
خطاerrرشته = ""متن خطا که در صورت موفقیت خالی است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

ورودی کی‌وی KVEntry

ساختار ورودی کی‌وی
نتیجه خواندن یک کلید از سطل کلید و مقدار.
نامانگلیسیگونهتوضیح
سالمokمنطقی = نادرستخود درخواست موفق بود، حتی اگر کلید وجود نداشته باشد.
یافت شدfoundمنطقی = نادرستکلید وجود دارد و مقدار مقدار آن را نگه می‌دارد.
حذف شدهdeletedمنطقی = نادرستآخرین عمل روی کلید آن را حذف کرده است.
کلیدkeyرشته = ""کلیدی که خوانده شد.
مقدارvalueرشته = ""مقدار کلید.
ویرایشrevisionصحیح = 0شماره این ویرایش کلید در جریان.
خطاerrرشته = ""متن خطا، مانند key not found.
net-nats-KV.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه(): صحیح:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    made := نتس.ساخت سطل کی‌وی(nc، "config"، 5، 2000)
    سرچاپ "bucket:"، made.سالم
    put := نتس.نوشتن کی‌وی(nc، "config"، "theme"، "dark"، 2000)
    سرچاپ "revision"، put.شماره
    got := نتس.خواندن کی‌وی(nc، "config"، "theme"، 2000)
    اگر got.یافت شد:
        سرچاپ got.کلید، got.مقدار، got.ویرایش
    پایان
    نتس.حذف کی‌وی(nc، "config"، "theme"، 2000)
    gone := نتس.خواندن کی‌وی(nc، "config"، "theme"، 2000)
    سرچاپ gone.یافت شد، gone.حذف شده
    نتس.حذف سطل کی‌وی(nc، "config"، 2000)
    نتس.بستن(nc)
    برگشت 0
پایان
ساختار سرآیند
جفت‌های کلید و مقدار که کنار بار پیام می‌روند. یک کلید می‌تواند چند بار بیاید.
نامانگلیسیگونهتوضیح
کلیدهاkeysوکتور<رشته>کلیدها به ترتیب افزوده شدن.
مقدارهاvaluesوکتور<رشته>مقدارها به همان ترتیب کلیدها.
net-nats-Headers.salam
// زبان: فارسی
واردسازی شبکه.نتس
واردسازی رشته

تابع ریشه:
    ناپایا h := نتس.سرآیند تازه()
    نتس.افزودن سرآیند(h، "Trace-Id"، "abc")
    نتس.افزودن سرآیند(h، "Tag"، "one")
    نتس.افزودن سرآیند(h، "Tag"، "two")
    سرچاپ نتس.گرفتن سرآیند(h، "trace-id")، نتس.مقدارهای سرآیند(h، "TAG").طول()، نتس.سرآیند دارد(h، "nope")
    نتس.تنظیم سرآیند(h، "Tag"، "only")
    نتس.حذف سرآیند(h، "Trace-Id")
    سرچاپ نتس.شمار سرآیند(h)
    سرچاپ رشته.جایگزینی(نتس.رمزگذاری سرآیند(h)، "\r\n"، "|")

    ناپایا code := 0
    ناپایا text := ""
    back := نتس.تجزیه سرآیند("NATS/1.0 503 No Responders\r\nA: 1\r\n\r\n"، code، text)
    سرچاپ code، text، نتس.گرفتن سرآیند(back، "a")
پایان
خروجیabc 2 false 1 NATS/1.0|Tag: only|| 503 No Responders 1

پیام Msg

ساختار پیام
یک پیام، دریافت‌شده یا آماده انتشار.
نامانگلیسیگونهتوضیح
سالمokمنطقی = نادرستپیامی رسید؛ پس از پایان مهلت یا خطا نادرست است.
خطاerrرشته = ""متن خطا، مانند timeout.
موضوعsubjectرشته = ""موضوع پیام.
پاسخ بهreplyرشته = ""موضوعی که پاسخ باید به آن فرستاده شود و اگر پاسخی لازم نباشد خالی است.
دادهdataرشته = ""بار پیام.
سرآیندheaderسرآیندسرآیندهای پیام.
شناسه اشتراکsidصحیح = 0شناسه اشتراکی که آن را گرفت.
وضعیتstatusصحیح = 0کد وضعیت در پیام وضعیت، مانند ۵۰۳ برای نبودن پاسخ‌دهنده، و در غیر این صورت ۰.
متن وضعیتstatus_textرشته = ""متن کنار کد وضعیت.
net-nats-Handlers.salam
// زبان: فارسی
واردسازی شبکه.نتس

ناپایا seen := 0

تابع note(m: نتس.پیام):
    seen += 1
    سرچاپ "event"، m.موضوع، m.داده
پایان

تابع shout(m: نتس.پیام): رشته:
    برگشت "HELLO " + m.داده
پایان

تابع ریشه(): صحیح:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    نتس.اشتراک با دستگیره(nc، "events.>"، ""، (m: نتس.پیام): note(m) پایان)
    نتس.اشتراک پاسخگو(nc، "greet"، ""، (m: نتس.پیام): برگشت shout(m) پایان)
    نتس.انتشار(nc، "events.a.b"، "started")

    ناپایا fwd := نتس.پیام {}
    fwd.موضوع = "events.copy"
    fwd.داده = "forwarded"
    نتس.انتشار پیام(nc، fwd)

    تکرار 20:
        نتس.پردازش(nc، 100)
    پایان
    سرچاپ "handled"، seen
    نتس.بستن(nc)
    برگشت 0
پایان

نشانگر اشتراک Subscription

ساختار نشانگر اشتراک
نشانگر اشتراکی که اشتراک برمی‌گرداند.
نامانگلیسیگونهتوضیح
سالمokمنطقی = نادرستاشتراک ساخته شد.
شناسهsidصحیح = 0شناسه اشتراک.
موضوعsubjectرشته = ""موضوع یا الگویی که به آن گوش می‌دهد.
صفqueueرشته = ""گروه صف که اگر نباشد خالی است.
net-nats-PubSub.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه(): صحیح:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    all := نتس.اشتراک(nc، "orders.*")
    first := نتس.اشتراک صف(nc، "jobs"، "workers")
    once := نتس.اشتراک(nc، "ping")
    نتس.لغو خودکار اشتراک(nc، once، 1)
    سرچاپ "subscriptions:"، نتس.شمار اشتراک(nc)

    نتس.انتشار(nc، "orders.new"، "order 1")
    نتس.انتشار(nc، "jobs"، "job 1")
    نتس.انتشار(nc، "ping"، "hello")
    نتس.تخلیه(nc، 1000)
    سرچاپ "waiting:"، نتس.صف مانده(nc، all)، نتس.صف مانده(nc، first)

    m := نتس.پیام بعدی(nc، all، 1000)
    اگر m.سالم:
        سرچاپ m.موضوع، m.داده
    پایان
    p := نتس.پیام بعدی(nc، once، 1000)
    سرچاپ p.داده، نتس.تحویل شده(nc، once)، نتس.اشتراک فعال است(nc، once)

    نتس.لغو اشتراک(nc، all)
    نتس.بستن(nc)
    برگشت 0
پایان

اطلاعات کارگزار ServerInfo

ساختار اطلاعات کارگزار
آنچه کارگزار هنگام باز شدن اتصال درباره خودش گفت.
نامانگلیسیگونهتوضیح
شناسه کارگزارserver_idرشته = ""شناسه یکتای کارگزار.
نام کارگزارserver_nameرشته = ""نام تنظیم‌شده کارگزار.
نگارشversionرشته = ""نگارش کارگزار.
میزبانhostرشته = ""میزبانی که کارگزار اعلام می‌کند.
درگاهportصحیح = 0درگاهی که کارگزار اعلام می‌کند.
پروتکلprotoصحیح = 0نگارش پروتکل.
شناسه کارخواهclient_idصحیح = 0شناسه‌ای که کارگزار به این اتصال داد.
بیشینه اندازه بارmax_payloadصحیح = 1048576بزرگ‌ترین بار پذیرفته‌شده کارگزار به بایت.
سرآیند پشتیبانیheadersمنطقی = نادرستکارگزار از سرآیند پیام پشتیبانی می‌کند.
تی‌ال‌اس لازمtls_requiredمنطقی = نادرستکارگزار تی‌ال‌اس را الزامی می‌داند.
احراز هویت لازمauth_requiredمنطقی = نادرستکارگزار احراز هویت را الزامی می‌داند.
جت‌استریمjetstreamمنطقی = نادرستجت‌استریم روی کارگزار فعال است.
خامrawرشته = ""خط INFO همان‌طور که کارگزار فرستاده است.
net-nats-Connect.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه(): صحیح:
    ناپایا opts := نتس.گزینه های پیش‌فرض()
    opts.نام = "billing"
    opts.مهلت میلی‌ثانیه = 3000
    ناپایا nc := نتس.برقراری اتصال با گزینه("nats://127.0.0.1:4222"، opts)
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    سرچاپ "connected, largest payload"، نتس.بیشینه اندازه بار(nc)
    نتس.بستن(nc)
    سرچاپ نتس.بسته شده است(nc)
    برگشت 0
پایان

گزینه ها Options

ساختار گزینه ها
تنظیمات اتصال. از گزینه های پیش‌فرض شروع کنید.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نامی برای این کارخواه که در پایش کارگزار دیده می‌شود.
کاربرuserرشته = ""نام کاربر.
گذرواژهpasswordرشته = ""گذرواژه.
توکنtokenرشته = ""توکن احراز هویت که به جای کاربر و گذرواژه به کار می‌رود.
بدون پژواکno_echoمنطقی = نادرستپیام‌های خود این اتصال به آن برگردانده نشوند.
پرگوverboseمنطقی = نادرستاز کارگزار می‌خواهد هر فرمان پروتکل را تایید کند.
سختگیرpedanticمنطقی = نادرستاز کارگزار بررسی سخت‌گیرانه‌تر پروتکل را می‌خواهد.
امنsecureمنطقی = نادرستاز تی‌ال‌اس استفاده شود.
بدون راستی آزماییinsecure_skip_verifyمنطقی = نادرستهر گواهی تی‌ال‌اس را می‌پذیرد. فقط برای آزمایش به کار ببرید.
مهلت میلی‌ثانیهtimeout_msصحیح = 5000مهلت برقراری اتصال به میلی‌ثانیه.
فاصله پینگ میلی‌ثانیهping_interval_msصحیح = 120000فاصله پینگ کردن کارگزار به میلی‌ثانیه.
بیشینه پینگ بی‌پاسخmax_pings_outصحیح = 2چند پینگ بی‌پاسخ به معنای مرگ اتصال است.
پیشوند صندوقinbox_prefixرشته = "_INBOX"پیشوند موضوع برای صندوق تازه.
کارگزارهاserversوکتور<رشته>نشانی کارگزارهای دیگر برای امتحان هنگام اتصال یا اتصال دوباره.
بیشینه اتصال دوبارهmax_reconnectsصحیح = 0چند بار پس از قطع اتصال دوباره وصل شود؛ ۰ اتصال دوباره را خاموش می‌کند.
انتظار اتصال دوباره میلی‌ثانیهreconnect_wait_msصحیح = 2000فاصله تلاش‌های اتصال دوباره به میلی‌ثانیه.
بافر اتصال دوبارهreconnect_bufferصحیح = 8388608چند بایت از پیام‌های خروجی هنگام اتصال دوباره نگه داشته شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

آمار Stats

ساختار آمار
شمارنده‌های ترافیک یک اتصال.
نامانگلیسیگونهتوضیح
پیام ورودیin_msgsصحیح۶۴ = 0پیام‌های دریافت‌شده.
پیام خروجیout_msgsصحیح۶۴ = 0پیام‌های فرستاده‌شده.
بایت ورودیin_bytesصحیح۶۴ = 0بایت‌های بار دریافت‌شده.
بایت خروجیout_bytesصحیح۶۴ = 0بایت‌های بار فرستاده‌شده.

اتصال نتس Conn

ساختار اتصال نتس
یک اتصال به کارگزار NATS. فقط وقتی از سوکت می‌خواند که تابعی منتظرشونده مانند پیام بعدی یا پردازش را صدا بزنید.
نامانگلیسیگونهتوضیح
سالمokمنطقی = نادرستاتصال برقرار شد.
قطع شدهclosedمنطقی = نادرستاتصال بسته شده است.
تخلیه شدنdrainingمنطقی = نادرستتخلیه کامل در حال انجام است.
خطاerrرشته = ""متن آخرین خطا.
نشانیurlرشته = ""نشانی کارگزار فعلی.
اطلاعاتinfoاطلاعات کارگزارآنچه کارگزار درباره خودش گفت.
گزینه هاoptsگزینه هاتنظیمات این اتصال.
آمارstatsآمارشمارنده‌های ترافیک این اتصال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

تابع‌ها

درخواست جت‌استریم JSRequest

تابع درخواست جت‌استریم(nc &: اتصال نتس، api: رشته، body: رشته، timeout_ms: صحیح): نتیجه جت‌استریم
درخواستی به رابط جت‌استریم می‌فرستد، مانند STREAM.INFO.orders، و پاسخ را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

افزودن جریان AddStream

تابع افزودن جریان(nc &: اتصال نتس، name: رشته، subjects: وکتور<رشته>، timeout_ms: صحیح): نتیجه جت‌استریم
جریانی روی این موضوع‌ها می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

حذف جریان DeleteStream

تابع حذف جریان(nc &: اتصال نتس، name: رشته، timeout_ms: صحیح): نتیجه جت‌استریم
جریان و پیام‌هایش را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

پاکسازی جریان PurgeStream

تابع پاکسازی جریان(nc &: اتصال نتس، name: رشته، timeout_ms: صحیح): نتیجه جت‌استریم
همه پیام‌های جریان را برمی‌دارد و خود جریان را نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

اطلاعات جریان StreamInfo

تابع اطلاعات جریان(nc &: اتصال نتس، name: رشته، timeout_ms: صحیح): وضعیت جریان
وضعیت یک جریان را می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

انتشار جت‌استریم JSPublish

تابع انتشار جت‌استریم(nc &: اتصال نتس، subject: رشته، data: رشته، timeout_ms: صحیح): تاییدیه انتشار
پیامی منتشر می‌کند و صبر می‌کند تا جریان آن را ذخیره کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

انتشار جت‌استریم با سرآیند JSPublishHeaders

تابع انتشار جت‌استریم با سرآیند(nc &: اتصال نتس، subject: رشته، h: سرآیند، data: رشته، timeout_ms: صحیح): تاییدیه انتشار
مانند انتشار جت‌استریم، همراه با سرآیند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

افزودن مصرف‌کننده AddConsumer

تابع افزودن مصرف‌کننده(nc &: اتصال نتس، stream: رشته، durable: رشته، filter: رشته، timeout_ms: صحیح): نتیجه جت‌استریم
یک مصرف‌کننده بادوام کششی روی جریان می‌سازد. filter آن را به یک موضوع محدود می‌کند و می‌تواند خالی باشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

حذف مصرف‌کننده DeleteConsumer

تابع حذف مصرف‌کننده(nc &: اتصال نتس، stream: رشته، durable: رشته، timeout_ms: صحیح): نتیجه جت‌استریم
مصرف‌کننده را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

واکشی Fetch

تابع واکشی(nc &: اتصال نتس، stream: رشته، durable: رشته، batch: صحیح، timeout_ms: صحیح): دسته
از مصرف‌کننده کششی حداکثر batch پیام می‌خواهد و تا رسیدن آن‌ها یا پایان مهلت صبر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

تایید Ack

تابع تایید(nc &: اتصال نتس، m: پیام): منطقی
به کارگزار می‌گوید که پیام انجام شده است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

رد Nak

تابع رد(nc &: اتصال نتس، m: پیام): منطقی
از کارگزار می‌خواهد پیام را دوباره تحویل دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

خاتمه Term

تابع خاتمه(nc &: اتصال نتس، m: پیام): منطقی
به کارگزار می‌گوید پیام را دیگر هرگز تحویل ندهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

ادامه کار InProgress

تابع ادامه کار(nc &: اتصال نتس، m: پیام): منطقی
به کارگزار می‌گوید کار روی پیام ادامه دارد و مهلت تایید آن را تمدید می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

شماره پیام جریان MsgSequence

تابع شماره پیام جریان(m: پیام): صحیح
شماره یک پیام جت‌استریم در جریان که از موضوع پاسخ آن خوانده می‌شود؛ برای پیام‌های دیگر ۰ است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-JetStream.salam

افزودن مصرف‌کننده فشاری AddPushConsumer

تابع افزودن مصرف‌کننده فشاری(nc &: اتصال نتس، stream: رشته، durable: رشته، filter: رشته، deliver: رشته، queue: رشته، timeout_ms: صحیح): نتیجه جت‌استریم
یک مصرف‌کننده بادوام فشاری می‌سازد که به موضوع deliver تحویل می‌دهد؛ برای گرفتن پیام‌ها مشترک همان موضوع شوید.
net-nats-Push.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه(): صحیح:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    sub := نتس.اشتراک(nc، "deliver.orders")
    made := نتس.افزودن مصرف‌کننده فشاری(nc، "ORDERS"، "pusher"، "orders.*"، "deliver.orders"، ""، 2000)
    اگر وارونه made.سالم:
        سرچاپ "consumer:"، made.خطا
        برگشت 1
    پایان
    تا درست:
        m := نتس.پیام فشاری بعدی(nc، sub، 2000)
        اگر وارونه m.سالم:
            بشکن
        پایان
        سرچاپ m.داده، نتس.شماره پیام جریان(m)
        نتس.تایید(nc، m)
    پایان
    نتس.بستن(nc)
    برگشت 0
پایان

پیام فشاری بعدی NextPush

تابع پیام فشاری بعدی(nc &: اتصال نتس، s: نشانگر اشتراک، timeout_ms: صحیح): پیام
پیام بعدی یک اشتراک فشاری. به ضربان‌های بیکاری خودش پاسخ می‌دهد و هرگز آن‌ها را برنمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Push.salam

ساخت سطل کی‌وی KVCreate

تابع ساخت سطل کی‌وی(nc &: اتصال نتس، bucket: رشته، history: صحیح، timeout_ms: صحیح): نتیجه جت‌استریم
یک سطل کلید و مقدار می‌سازد که history ویرایش از هر کلید را نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-KV.salam

حذف سطل کی‌وی KVDeleteBucket

تابع حذف سطل کی‌وی(nc &: اتصال نتس، bucket: رشته، timeout_ms: صحیح): نتیجه جت‌استریم
سطل و کلیدهایش را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-KV.salam

نوشتن کی‌وی KVPut

تابع نوشتن کی‌وی(nc &: اتصال نتس، bucket: رشته، key: رشته، value: رشته، timeout_ms: صحیح): تاییدیه انتشار
کلیدی را می‌نویسد و تاییدیه را برمی‌گرداند؛ شماره آن ویرایش تازه است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-KV.salam

خواندن کی‌وی KVGet

تابع خواندن کی‌وی(nc &: اتصال نتس، bucket: رشته، key: رشته، timeout_ms: صحیح): ورودی کی‌وی
تازه‌ترین ویرایش یک کلید را می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-KV.salam

حذف کی‌وی KVDelete

تابع حذف کی‌وی(nc &: اتصال نتس، bucket: رشته، key: رشته، timeout_ms: صحیح): تاییدیه انتشار
کلید را با نوشتن نشانه حذف پاک می‌کند، پس تاریخچه‌اش تا سقف سطل می‌ماند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-KV.salam

گزینه های پیش‌فرض DefaultOptions

تابع گزینه های پیش‌فرض(): گزینه ها
تنظیمات پیش‌فرض، آماده تغییر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

سرآیند تازه NewHeader

تابع سرآیند تازه(): سرآیند
یک سرآیند خالی می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

افزودن سرآیند HeaderAdd

تابع افزودن سرآیند(h &: سرآیند، key: رشته، value: رشته)
مقداری به کلید می‌افزاید و مقدارهای قبلی را نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

حذف سرآیند HeaderDel

تابع حذف سرآیند(h &: سرآیند، key: رشته)
کلید و همه مقدارهایش را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

تنظیم سرآیند HeaderSet

تابع تنظیم سرآیند(h &: سرآیند، key: رشته، value: رشته)
مقدارهای کلید را با این مقدار جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

گرفتن سرآیند HeaderGet

تابع گرفتن سرآیند(h: سرآیند، key: رشته): رشته
نخستین مقدار کلید یا یک متن خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

مقدارهای سرآیند HeaderValues

تابع مقدارهای سرآیند(h: سرآیند، key: رشته): وکتور<رشته>
همه مقدارهای یک کلید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

سرآیند دارد HeaderHas

تابع سرآیند دارد(h: سرآیند، key: رشته): منطقی
اگر کلید وجود داشته باشد درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

شمار سرآیند HeaderCount

تابع شمار سرآیند(h: سرآیند): صحیح
شمار جفت‌های کلید و مقدار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

رمزگذاری سرآیند HeaderEncode

تابع رمزگذاری سرآیند(h: سرآیند): رشته
سرآیند به شکل ارسالی آن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

تجزیه سرآیند HeaderParse

تابع تجزیه سرآیند(block: رشته، status &: صحیح، status_text &: رشته): سرآیند
سرآیند را از شکل ارسالی می‌خواند و اگر قطعه کد و متن وضعیت داشته باشد آن‌ها را هم تنظیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Headers.salam

صندوق تازه NewInbox

تابع صندوق تازه(nc: اتصال نتس): رشته
یک موضوع یکتای تازه برای گرفتن پاسخ.
net-nats-Request.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه(): صحیح:
    ناپایا nc := نتس.برقراری اتصال("nats://127.0.0.1:4222")
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    r := نتس.درخواست(nc، "time.now"، ""، 1000)
    اگر r.سالم:
        سرچاپ "answer:"، r.داده
    وگرنه:
        سرچاپ "no answer:"، r.خطا
    پایان

    ناپایا h := نتس.سرآیند تازه()
    نتس.افزودن سرآیند(h، "Trace-Id"، "abc-123")
    r2 := نتس.درخواست با سرآیند(nc، "svc.echo"، h، "ping"، 1000)
    سرچاپ r2.سالم، r2.داده

    inbox := نتس.صندوق تازه(nc)
    نتس.انتشار درخواست(nc، "svc.echo"، inbox، "fire")
    reply := نتس.اشتراک(nc، inbox)
    سرچاپ نتس.پیام بعدی(nc، reply، 500).سالم

    سرچاپ "drained:"، نتس.تخلیه کامل(nc، 1000)
    برگشت 0
پایان

موضوع معتبر ValidSubject

تابع موضوع معتبر(subject: رشته): منطقی
اگر بتوان متن را به عنوان موضوع انتشار به کار برد درست است.
net-nats-Subjects.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه:
    سرچاپ نتس.موضوع معتبر("orders.eu.new")، نتس.موضوع معتبر("orders..new")، نتس.موضوع معتبر("a b")
    سرچاپ نتس.تطبیق موضوع("orders.*"، "orders.new")، نتس.تطبیق موضوع("orders.*"، "orders.eu.new")
    سرچاپ نتس.تطبیق موضوع("orders.>"، "orders.eu.new")، نتس.تطبیق موضوع("orders.>"، "orders")
پایان
خروجیtrue false false true false true false

تطبیق موضوع SubjectMatches

تابع تطبیق موضوع(pattern: رشته، subject: رشته): منطقی
اگر موضوع با الگو هم‌خوان باشد درست است. * یک بخش و > در انتها یک یا چند بخش را می‌گیرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Subjects.salam

پردازش Pump

تابع پردازش(nc &: اتصال نتس، timeout_ms: صحیح): صحیح
تا timeout_ms از سوکت می‌خواند، آنچه رسیده را پردازش می‌کند و شمار پیام‌های پردازش‌شده را برمی‌گرداند. دستگیره‌ها از همین‌جا اجرا می‌شوند، پس اگر از آن‌ها استفاده می‌کنید آن را در حلقه صدا بزنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Handlers.salam

برقراری اتصال Connect

تابع برقراری اتصال(url: رشته): اتصال نتس
با تنظیمات پیش‌فرض به کارگزار وصل می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

برقراری اتصال با گزینه ConnectWith

تابع برقراری اتصال با گزینه(url: رشته، opts: گزینه ها): اتصال نتس
با این تنظیمات به کارگزار وصل می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

وصل است IsConnected

تابع وصل است(nc: اتصال نتس): منطقی
تا وقتی اتصال قابل استفاده است درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

بسته شده است IsClosed

تابع بسته شده است(nc: اتصال نتس): منطقی
پس از بسته شدن اتصال درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

آخرین خطا LastError

تابع آخرین خطا(nc: اتصال نتس): رشته
متن آخرین خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

بستن Close

تابع بستن(nc &: اتصال نتس)
اتصال را فوراً می‌بندد. برای تمام کردن کارهای مانده از تخلیه کامل استفاده کنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

انتشار Publish

تابع انتشار(nc &: اتصال نتس، subject: رشته، data: رشته): منطقی
پیامی منتشر می‌کند و اگر نوشته نشد نادرست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

انتشار درخواست PublishRequest

تابع انتشار درخواست(nc &: اتصال نتس، subject: رشته، reply: رشته، data: رشته): منطقی
پیامی منتشر می‌کند و موضوعی را که پاسخ باید به آن برود نام می‌برد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Request.salam

انتشار با سرآیند PublishHeaders

تابع انتشار با سرآیند(nc &: اتصال نتس، subject: رشته، h: سرآیند، data: رشته): منطقی
پیامی همراه با سرآیند منتشر می‌کند.

انتشار پیام PublishMsg

تابع انتشار پیام(nc &: اتصال نتس، m: پیام): منطقی
یک پیام را با موضوع، پاسخ، سرآیند و بارش منتشر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Handlers.salam

پاسخ Respond

تابع پاسخ(nc &: اتصال نتس، m: پیام، data: رشته): منطقی
پاسخی به موضوع پاسخ یک پیام می‌فرستد؛ اگر نداشته باشد نادرست برمی‌گرداند.

اشتراک Subscribe

تابع اشتراک(nc &: اتصال نتس، subject: رشته): نشانگر اشتراک
مشترک یک موضوع یا الگو می‌شود. پیام‌ها را با پیام بعدی بخوانید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

اشتراک صف QueueSubscribe

تابع اشتراک صف(nc &: اتصال نتس، subject: رشته، queue: رشته): نشانگر اشتراک
به عنوان عضو یک گروه صف مشترک می‌شود، پس هر پیام فقط به یک عضو می‌رسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

اشتراک با دستگیره SubscribeHandler

تابع اشتراک با دستگیره(nc &: اتصال نتس، subject: رشته، queue: رشته، handler: تابع(پیام)): نشانگر اشتراک
مشترک می‌شود و این تابع را برای هر پیام از درون پردازش صدا می‌زند. queue می‌تواند خالی باشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Handlers.salam

اشتراک پاسخگو SubscribeReplier

تابع اشتراک پاسخگو(nc &: اتصال نتس، subject: رشته، queue: رشته، handler: تابع(پیام): رشته): نشانگر اشتراک
مانند اشتراک با دستگیره، و متنی که تابع برمی‌گرداند به عنوان پاسخ فرستاده می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Handlers.salam

لغو اشتراک Unsubscribe

تابع لغو اشتراک(nc &: اتصال نتس، s: نشانگر اشتراک): منطقی
اشتراک را پایان می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

لغو خودکار اشتراک AutoUnsubscribe

تابع لغو خودکار اشتراک(nc &: اتصال نتس، s: نشانگر اشتراک، max: صحیح): منطقی
اشتراک را پس از تحویل max پیام خودکار پایان می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

اشتراک فعال است IsValidSubscription

تابع اشتراک فعال است(nc: اتصال نتس، s: نشانگر اشتراک): منطقی
تا وقتی اشتراک فعال است درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

تحویل شده Delivered

تابع تحویل شده(nc: اتصال نتس، s: نشانگر اشتراک): صحیح
شمار پیام‌هایی که این اشتراک گرفته است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

صف مانده Pending

تابع صف مانده(nc: اتصال نتس، s: نشانگر اشتراک): صحیح
شمار پیام‌های دریافت‌شده که منتظر خوانده شدن با پیام بعدی هستند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

پیام بعدی NextMsg

تابع پیام بعدی(nc &: اتصال نتس، s: نشانگر اشتراک، timeout_ms: صحیح): پیام
منتظر پیام بعدی یک اشتراک می‌ماند. با پایان مهلت سالم نادرست و خطا برابر timeout است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

تخلیه Flush

تابع تخلیه(nc &: اتصال نتس، timeout_ms: صحیح): منطقی
صبر می‌کند تا کارگزار همه چیزهایی را که تا اینجا فرستاده شده پردازش کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

درخواست Request

تابع درخواست(nc &: اتصال نتس، subject: رشته، data: رشته، timeout_ms: صحیح): پیام
درخواستی منتشر می‌کند و منتظر یک پاسخ می‌ماند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Request.salam

درخواست با سرآیند RequestMsg

تابع درخواست با سرآیند(nc &: اتصال نتس، subject: رشته، h: سرآیند، data: رشته، timeout_ms: صحیح): پیام
مانند درخواست، همراه با سرآیند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Request.salam

تخلیه کامل Drain

تابع تخلیه کامل(nc &: اتصال نتس، timeout_ms: صحیح): منطقی
همه اشتراک‌ها را پایان می‌دهد، صبر می‌کند تا کارگزار فرستاده‌ها را پردازش کند و اتصال را می‌بندد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Request.salam

بیشینه اندازه بار MaxPayload

تابع بیشینه اندازه بار(nc: اتصال نتس): صحیح
بزرگ‌ترین بار پذیرفته‌شده کارگزار به بایت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Connect.salam

شمار اشتراک SubscriptionCount

تابع شمار اشتراک(nc: اتصال نتس): صحیح
شمار اشتراک‌های فعال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-PubSub.salam

در حال اتصال دوباره IsReconnecting

تابع در حال اتصال دوباره(nc: اتصال نتس): منطقی
تا وقتی اتصال در حال وصل شدن دوباره است درست است.
net-nats-Reconnect.salam
// زبان: فارسی
واردسازی شبکه.نتس

تابع ریشه(): صحیح:
    ناپایا opts := نتس.گزینه های پیش‌فرض()
    opts.کارگزارها.بیفزا("nats://10.0.0.2:4222")
    opts.کارگزارها.بیفزا("nats://10.0.0.3:4222")
    opts.بیشینه اتصال دوباره = 20
    opts.انتظار اتصال دوباره میلی‌ثانیه = 500
    opts.بافر اتصال دوباره = 1048576
    ناپایا nc := نتس.برقراری اتصال با گزینه("nats://10.0.0.1:4222"، opts)
    اگر وارونه نتس.وصل است(nc):
        سرچاپ "cannot connect:"، نتس.آخرین خطا(nc)
        برگشت 1
    پایان
    sub := نتس.اشتراک(nc، "metrics.>")
    تا وارونه نتس.بسته شده است(nc):
        m := نتس.پیام بعدی(nc، sub، 1000)
        اگر m.سالم:
            سرچاپ m.موضوع، m.داده
        پایان
        اگر نتس.در حال اتصال دوباره(nc):
            سرچاپ "link is down, buffered"، نتس.بایت‌های بافر شده(nc)، "bytes"
            نتس.انتشار(nc، "audit"، "waiting for the server")
        پایان
        اگر نتس.بسته شده است(nc):
            بشکن
        پایان
    پایان
    سرچاپ "reconnected"، نتس.شمار اتصال دوباره(nc)، "times"
    نتس.بستن(nc)
    برگشت 0
پایان

شمار اتصال دوباره Reconnects

تابع شمار اتصال دوباره(nc: اتصال نتس): صحیح
چند بار اتصال دوباره وصل شده است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Reconnect.salam

بایت‌های بافر شده BufferedBytes

تابع بایت‌های بافر شده(nc: اتصال نتس): صحیح
شمار بایت‌های پیام که منتظر فرستاده شدن پس از اتصال دوباره‌اند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-nats-Reconnect.salam