سلام به همکاران توسعه دهنده! امروز می خواهم نکاتی را که اخیرا در مورد استفاده از تکنیک های ارتباطاتبلافاصله (RTC) و ترجمه آدرس شبکه (NAT) کسب کرده ام به اشتراک بگذارم. به طور خلاصه، من روی اجرای سرور های ترن/ترن (STUN/TURN) توسط تونلز.
STUN (Utilities Traversal Session for NAT) و Turn (Using Relays around NAT) پروتکل های اصلی در برنامه های RTC هستند که به ایجاد و نگه داشتن ارتباط میان افراد در صورت ناتوانی در NAT کمک می کنند. STUN برای کشف آدرس IP عمومی و پورت یک مشترک در پشت یک NAT استفاده می شود، در حالی که Turn به عنوان سرور رابط برای ارتباط مستقیم بین افراد در صورت ناتوانی STUN به کار می رود.
کتابخانه تونلز.
یکی از چالشی که برای اجرای سرورهای STUN/TURN وجود دارد، مدیریت پیچیده NAT است. کتابخانه تونلز.
چالشی دیگر امنیت کاربری شماست. با کتابخانه تونلز. io، شما می توانید گزینه های مختلف امنیتی از قبیل رمزگذاری (SRTP یا ZRTP) و مکانیسم های امنیتی (X509 گواهی ها یا اسرار مشترک) را برنامه ریزی کنید. درک این تفاوت ها، از جمله تفاضل عملکرد و پیچیدگی مدیریت گواهی ها در برابر لایه اضافی امنیتی که آن ها فراهم می کنند، ضروری است.
برای اینکه مثال عملی از استفاده از کتابخانه تونلز.
مرکز بسته بندی را پیدا کنید.
وارد کردن ( «fmt» “github. com/tunnels-is/stunturn/stun” ) ```
بعد، ما یک تابع می سازیم که مشتری استون را آغاز و اجرا می کند:
اجرای تابع اصلی (client) اگر خطا عدد صفر باشد fmt.Println (خطا) برگشت داده خواهد شد.
پاسخ خطا: خطا = ارتباط مشترک اگر خطا نادرست باشد fmt.Println (خطا) برگردانده می شود.
fmt. Printf(“IP Client: %s\n”, response. IP Client()) fmt. Printf(“Port Client: %d\n”, response. Port Client())
در این مورد، ما یک مشترک جدید STUN را از طریق سرور عمومی STUN گوگل می سازیم و بعد به آن وصل می شویم.
با به کار گرفتن کتابخانه تونلز. آی. او، شما می توانید به سرعت اپلیکیشن های RTC قوی ایجاد کنید که با آسانی از مشکلات NAT عبور کنند. مثل همیشه، لازم است که اجرای برنامه هایتان را کاملا بررسی کنید و در مورد پیامدهای امنیتی آن هنگام اجرای برنامه تان در محیط تولید فکر کنید.
خوشحال از برنامه نویسی! اگر در این زمینه سوال یا نظری داری، بگذار پایین. منتظر شنیدن از تو هستم!
منبع: کتابخانه زلزله و چرخش گولان (TCP+UDP) با مجوز MIT + کد چت برای تست