рд╣рд╛рд▓ рд╣реА рдореЗрдВ WebRTC рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЙрди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд░реНрд╡рд░ рдХреЗ рдмрд┐рдирд╛ рджреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рдВрдкрд░реНрдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИред рдФрд░ рд╕реНрд╡рдпрдВ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ, рдХреБрдЫ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░рдпреЛрдЧред
Rtc рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рджреЛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдкрд╣рд▓рд╛ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрдХрдиреАрдХреА рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрджрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕рд┐рдЧреНрдирд▓ рд╕рд░реНрд╡рд░ рдХреЗ рдХрдИ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ рдФрд░ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдХреЗ рд╕реБрдЦ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЦреБрд▓реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рдЯ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ peer.js рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рдПрдХ рдХреНрд▓рд╛рдЙрдб рд╕рд┐рдЧреНрдирд▓ рд╕рд░реНрд╡рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╢реНрди рдХреЗ рдЗрд╕ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдмреЗрд╢рдХ, рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд░ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рджреВрд╕рд░рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЖрд░рдЯреАрд╕реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдХреЛ рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рднрд╛рдЧреАрджрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рд░рд╣рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, peer.js рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ, "рдЖрдк рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдХрд░реНрдореА рдЖрдИрдбреА рдХреЗ рд╕рдВрдЪрд╛рд░ рдХреЗ рдкреНрд░рднрд╛рд░реА рд╣реИрдВред" рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд░реНрд╡рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИ рдЬреЛ рдкрдВрдЬреАрдХреГрдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдХреЛрдИ рднреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдЦреБрд▓реЗ rtc рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ:
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде (peer.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рд╕рд╣рд╛рдпрдХ рдЕрд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
signalPeer = new Peer(peer.options); signalConnection = signalPeer.connect('initial_peer');
- рдпрджрд┐ рд╣рдо рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд╣реБрдП, рддреЛ рд╣рдо рдЗрд╕ rtc рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рд╕рд╣рдХрд░реНрдореА рдХреА рдкреЛрд╖рд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
signalConnection.on('open', function() {signalConnection.send(mainPeerId); } );
- рдпрджрд┐ рдпрд╣ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рддреЛ рдХреБрдЫ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реНрд╡рдпрдВ рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЪреИрдирд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ:
setTimeout(function(){ if(!onnected){ signalPeer = new Peer('initial_peer', peer.options); } }, 3000);
- рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рд╕рдлрд▓ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рд╣рд╛рдпрдХ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рднреА рдХреЛрдб рдкрдЪрд╛рд╕ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВред рдорд┐рдиреА-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж (рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: github.com/bay73/puzzleduel/blob/master/randompeer.js ) рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var peer = new Peer({key: key}); connectRandom(peer, function(connection) { // connection.on('data'), function(data){ /* */}); connection.send(data); /* */ }, function() { // } );
рдЖрдк рдкреВрд░рд╛ рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдП рдЧрдП рдЦрд┐рд▓реМрдиреЗ рдХреЗ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: bay73.github.io/puzzleduel ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдХреА рдЙрдореНрдореАрдж рдХреЛ рд░реЛрд╢рди рдХрд░реЗрдЧрд╛ред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдФрд░ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ) рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЦреЗрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╕рд╡рд╛рд▓ рд╣реИ - рдХреНрдпрд╛ рдРрд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛?