рд╕реЙрдХреЗрдЯ.io.js рдХреА рд▓рд╛рдЗрди 1613 рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ:
this.transports = opts.transports || ['рдорддрджрд╛рди', 'рд╡реЗрдмрд╕реЛрдХреЗрдЯ'];
рдЖрджреЗрд╢ ['рд╡реЗрдмрд╕реЛрдХреЗрдЯ', 'рдорддрджрд╛рди'] рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?
рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рдореИрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:
рд╡рд░ рд╕реЙрдХреЗрдЯ = io.connect (url);
рдлрд┐рд░ рд╕рд░реНрд╡рд░ рдХреА рддрд░рдл, рдореИрдВрдиреЗ рдХрд┐рдпрд╛:
io.on ('рдХрдиреЗрдХреНрд╢рди', рдлрд╝рдВрдХреНрд╢рди (рд╕реЙрдХреЗрдЯ) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рд╕реЙрдХреЗрдЯ);
});
рд╣рд╛рде рдорд┐рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
handshake:
{ headers:
{ 'user-agent': 'node-XMLHttpRequest',
accept: '*/*',
host: 'localhost:8081',
connection: 'close' },
time: 'Fri Sep 11 2015 16:04:39 GMT-0400 (EDT)',
address: '::ffff:127.0.0.1',
xdomain: false,
secure: false,
issued: 1442001879771,
url: '/socket.io/?EIO=3&transport=polling&t=1442001879749-0&b64=1',
query: { EIO: '3', transport: 'polling', t: '1442001879749-0', b64: '1' } }
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХреЗ рдмрдЬрд╛рдп рдорддрджрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдореИрдВрдиреЗ рдкрд░рд┐рд╡рд╣рди рдХреЛ 'рд╡реЗрдмрд╕реЛрдХреЗрдЯ' рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рд╣реИрдВрдбрд╢реЗрдХ рднрд╛рдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рдЬреЛ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ:
рд╡рд░ рд╕реЙрдХреЗрдЯ = io.connect (рдпреВрдЖрд░рдПрд▓, {рдкрд░рд┐рд╡рд╣рди: ['рд╡реЗрдмрд╕реЛрдХреЗрдЯ']});
handshake:
{ headers:
{ connection: 'Upgrade',
upgrade: 'websocket',
host: 'localhost:8081',
origin: 'localhost:8081',
'sec-websocket-version': '13',
'sec-websocket-key': 'MTMtMTQ0MjAwMTUxNDcyNA==' },
time: 'Fri Sep 11 2015 15:58:34 GMT-0400 (EDT)',
address: '::ffff:127.0.0.1',
xdomain: true,
secure: false,
issued: 1442001514739,
url: '/socket.io/?EIO=3&transport=websocket',
query: { EIO: '3', transport: 'websocket' } }
+1
рдореИрдВ "рдЕрдкрдЧреНрд░реЗрдб" рдХреЗ рдмрдЬрд╛рдп "рдбрд╛рдЙрдирдЧреНрд░реЗрдб" рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрдЪрдд рд╣реЛрдЧреАред
upgrade
рдХрд╛ рдХрд╛рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред
Socket.IO рдХрднреА рдирд╣реАрдВ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ WebSocket рдмрд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рддреБрд░рдВрдд XHR рдпрд╛ JSONP рдХреЗ рд╕рд╛рде рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ WebSocket рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдлрд╝реЙрд▓рдмреИрдХ рдкрджреНрдзрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЬреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЦрд░рд╛рдм рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
@nkzawa
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдкрдЧреНрд░реЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдХреНрдпреЛрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ: рдирд┐рдпрдВрддреНрд░рд┐рдд рдЙрджреНрдпрдо рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХреЛ рдПрдХрдорд╛рддреНрд░ рдЕрдиреБрдордд рдкрд░рд┐рд╡рд╣рди рдХреЗ рд░реВрдк рдореЗрдВ рдордЬрдмреВрд░ рдХрд░рдирд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдкрд░ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд╣рди рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
{ transports: ["websocket"] }
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдПрдХ рдорддрджрд╛рди рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рд░ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
Request URL:http://localhost:4000/socket.io/?EIO=3&transport=polling&t=L8RaD0p
{ code: 0, message: "Transport unknown" }
рдХреНрдпрд╛ рдЗрд╕ рдЕрдкрдЧреНрд░реЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдордп рдХреЛрдИ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рд╣реИ?
рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рдерд╛ рдЬрд┐рд╕рдиреЗ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдорддрджрд╛рди рдХрд┐рдпрд╛ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рд╕реЙрдХреЗрдЯ рдХрд╛ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╡рд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ред
@рд╕рд┐рд░реБрдбреЛрдЧ
рдЖрдк рдЗрд╕реЗ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ: {рдкрд░рд┐рд╡рд╣рди: ['рд╡реЗрдмрд╕реЛрдХреЗрдЯ', 'рдорддрджрд╛рди'] }
рдзрдиреНрдпрд╡рд╛рдж @ poppowerlb2 (рдореЗрд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЯреИрдм рдореЗрдВ рдЙрд╕рдХреЗ рдЬреИрд╕рд╛ рдХреЛрдИ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд╣реАрдВ)ред рднрд▓реЗ рд╣реА рдореЗрд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдк рдЯреВ рдбреЗрдЯ рд╣реЛ, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╕реЙрдХреЗрдЯ-рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рдорддрджрд╛рди рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЕрдкрдЧреНрд░реЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреБрдЫ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдПрдХ рдиреЛрдб-рд▓рд╛рд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде socket.io рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рдореИрдВ рдЕрднреА рддрдХ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдБред рдмреЗрд╢рдХ, рдпрд╣ рд╕рд╛рджреЗ websockets рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдорддрджрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рддреЛ рднреА socket.io websockets рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
+1
рдореИрдВ "рдЕрдкрдЧреНрд░реЗрдб" рдХреЗ рдмрдЬрд╛рдп "рдбрд╛рдЙрдирдЧреНрд░реЗрдб" рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрдЪрдд рд╣реЛрдЧреАред
`
рдХреЙрдиреНрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ = io ('https://io.yourhost.com', {// рдЪреЗрддрд╛рд╡рдиреА: рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдорддрджрд╛рди рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд╣рди рдореЗрдВ рдХреЛрдИ рд╡рд╛рдкрд╕реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ: ['рд╡реЗрдмрд╕реЛрдХреЗрдЯ'] // рдпрд╛ ['рд╡реЗрдмрд╕реЛрдХреЗрдЯ', ' рдорддрджрд╛рди'], рдЬреЛ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ})
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
+1
рдореИрдВ "рдЕрдкрдЧреНрд░реЗрдб" рдХреЗ рдмрдЬрд╛рдп "рдбрд╛рдЙрдирдЧреНрд░реЗрдб" рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрдЪрдд рд╣реЛрдЧреАред