рдореИрдВ рдПрдХ рдЧрд▓рддреА рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдпрд╣рд╛рдБ рд╕рд░реНрд╡рд░ рдХреЛрдб рд╣реИ:
(function () {
'use strict';
var url = require("url"),
sio = require('socket.io')(3010);
//Authentification required
sio.use(function (socket, next) {
return next(new Error('refused client'));
});
}());
рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛрдб:
(function () {
"use strict";
//Network
var socket = io.connect(SOCKET_IO_SERVER);
socket.on('error', function(){
console.error(arguments);
});
}());
рддреЛ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ?
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХреНрд░реЛрдо рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ "рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХреНрд▓рд╛рдЗрдВрдЯ" рдпреБрдХреНрдд polling
рдЕрдиреБрд░реЛрдз рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ
рдХреЛрдИ рдирд╣реАрдВ?
рд╣рдо рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗред рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдмрд╛рдд рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдПрдХ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд░реЗрдкреЛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдо рдХреЗрд╡рд▓ рд╡рд┐рдлрд▓рддрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдХрдИ рдЕрдиреНрдп рдХрд╛рд░рдХ рднреА рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрджрдо рдЙрдард╛рдП рд╣реИрдВ?
+1
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкрд░ рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рдХреЙрд▓рдмреИрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
var nsp = io.of('/namespace');
// client never receives the error event
io.use(function (socket, next) {
return next(new Error('refused client'));
});
// this way works
nsp.use(function (socket, next) {
return next(new Error('refused client'));
});
@ oliveiragabriel07 рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕рдЯреАрдХ рдореБрджреНрджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдореИрдВрдиреЗ рдПрдХ рдХрд╛рд░реНрдп рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд░реЗрдкреЛ рдмрдирд╛рдпрд╛ https://github.com/Korri/socket.io-issue688
рдореИрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ socket.io 1.0 w/'рддреНрд░реБрдЯрд┐' рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдорд┐рдбрд▓рд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред
рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред @ oliveiragabriel07 рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрдиреЗрдХреНрд╢рди рдорд┐рдбрд▓рд╡реЗрдпрд░ (io.use) рдореЗрдВ рдлреЗрдВрдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реЙрдХреЗрдЯ рд╣реИред
рдореИрдВ @jbaez рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред
рддреНрд░реБрдЯрд┐ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ() рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХреНрд╕рдкреНрд░реЗрд╕.рдЬреЗрдПрд╕ рдореЗрдВ рднреА рдмрдЧ рд╣реИред
рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
io.use(function (socket, next) {
next(new Error('refused client'));
return;
});
рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ
io.use(function (socket, next) {
return next(new Error('refused client'));
});
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред @ oliveiragabriel07 рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрдиреЗрдХреНрд╢рди рдорд┐рдбрд▓рд╡реЗрдпрд░ (io.use) рдореЗрдВ рдлреЗрдВрдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реЙрдХреЗрдЯ рд╣реИред