টার্ন সার্ভার

বেশিরভাগ WebRTC অ্যাপ্লিকেশনের কাজ করার জন্য সমবয়সীদের মধ্যে ট্রাফিক রিলে করার জন্য একটি সার্ভারের প্রয়োজন হয়, যেহেতু ক্লায়েন্টদের মধ্যে একটি সরাসরি সকেট প্রায়ই সম্ভব হয় না (যদি না তারা একই স্থানীয় নেটওয়ার্কে থাকে)। এটি সমাধান করার সাধারণ উপায় হল একটি টার্ন সার্ভার ব্যবহার করে। শব্দটি NAT এর চারপাশে ট্রাভার্সাল ইউজিং রিলেকে বোঝায় এবং এটি নেটওয়ার্ক ট্র্যাফিক রিলে করার জন্য একটি প্রোটোকল।

বর্তমানে স্ব-হোস্টেড অ্যাপ্লিকেশন (যেমন ওপেন সোর্স COTURN প্রকল্প) এবং ক্লাউড প্রদত্ত পরিষেবা হিসাবে অনলাইনে টার্ন সার্ভারের জন্য বেশ কয়েকটি বিকল্প উপলব্ধ রয়েছে।

একবার আপনার কাছে একটি টার্ন সার্ভার অনলাইনে উপলব্ধ হলে, এটি ব্যবহার করার জন্য আপনার ক্লায়েন্ট অ্যাপ্লিকেশনের জন্য সঠিক RTCConfiguration প্রয়োজন। নিম্নলিখিত কোড স্নিপেটটি একটি RTCPeerConnection জন্য একটি নমুনা কনফিগারেশনকে চিত্রিত করে যেখানে TURN সার্ভারের হোস্টনাম my-turn-server.mycompany.com রয়েছে এবং এটি 19403 পোর্টে চলছে। কনফিগারেশন অবজেক্ট সার্ভারে অ্যাক্সেস সুরক্ষিত করার জন্য username এবং credential বৈশিষ্ট্যগুলিকেও সমর্থন করে। একটি টার্ন সার্ভারের সাথে সংযোগ করার সময় এগুলি প্রয়োজন৷

const iceConfiguration = {
    iceServers: [
        {
            urls: 'turn:my-turn-server.mycompany.com:19403',
            username: 'optional-username',
            credential: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);
,

বেশিরভাগ WebRTC অ্যাপ্লিকেশনের কাজ করার জন্য সমবয়সীদের মধ্যে ট্রাফিক রিলে করার জন্য একটি সার্ভারের প্রয়োজন হয়, যেহেতু ক্লায়েন্টদের মধ্যে একটি সরাসরি সকেট প্রায়ই সম্ভব হয় না (যদি না তারা একই স্থানীয় নেটওয়ার্কে থাকে)। এটি সমাধান করার সাধারণ উপায় হল একটি টার্ন সার্ভার ব্যবহার করে। শব্দটি NAT এর চারপাশে ট্রাভার্সাল ইউজিং রিলেকে বোঝায় এবং এটি নেটওয়ার্ক ট্র্যাফিক রিলে করার জন্য একটি প্রোটোকল।

বর্তমানে স্ব-হোস্টেড অ্যাপ্লিকেশন (যেমন ওপেন সোর্স COTURN প্রকল্প) এবং ক্লাউড প্রদত্ত পরিষেবা হিসাবে অনলাইনে টার্ন সার্ভারের জন্য বেশ কয়েকটি বিকল্প উপলব্ধ রয়েছে।

একবার আপনার কাছে একটি টার্ন সার্ভার অনলাইনে উপলব্ধ হলে, এটি ব্যবহার করার জন্য আপনার ক্লায়েন্ট অ্যাপ্লিকেশনের জন্য সঠিক RTCConfiguration প্রয়োজন। নিম্নলিখিত কোড স্নিপেটটি একটি RTCPeerConnection জন্য একটি নমুনা কনফিগারেশনকে চিত্রিত করে যেখানে TURN সার্ভারের হোস্টনাম my-turn-server.mycompany.com রয়েছে এবং এটি 19403 পোর্টে চলছে। কনফিগারেশন অবজেক্ট সার্ভারে অ্যাক্সেস সুরক্ষিত করার জন্য username এবং credential বৈশিষ্ট্যগুলিকেও সমর্থন করে। একটি টার্ন সার্ভারের সাথে সংযোগ করার সময় এগুলি প্রয়োজন৷

const iceConfiguration = {
    iceServers: [
        {
            urls: 'turn:my-turn-server.mycompany.com:19403',
            username: 'optional-username',
            credential: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);