v2.3.0 рдореЗрдВ io.engine.generateId
рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╕реЙрдХреЗрдЯ рдЖрдИрдбреА рддрджрдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред
3x (3.0.0 рдФрд░ 3.0.3 рдкрд░ рдкрд░реАрдХреНрд╖рдг) рдореЗрдВ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВред
Node.js рдореЗрдВ:
const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);
const { v4: uuidv4 } = require('uuid');
io.engine.generateId = function (req)
{
return uuidv4();
}
рдЬреИрд╕рд╛ рдХрд┐ v2.3.0 рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕реЙрдХреЗрдЯ рдЖрдИрдбреА рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рд╛рд░реВрдк, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, "xxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ x рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХрд▓ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореБрдЭреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЙрдХреЗрдЯ рдЖрдИрдбреА рдкреНрд░рд╛рд░реВрдк рдорд┐рд▓рддрд╛ рд╣реИред
рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдлреЗрдВрдХреА рдЬрд╛рддреА рд╣реИ, рдкреНрд░рд╛рд░реВрдк рдмрд╕ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рдБ, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред
рдпрд╣рд╛рдБ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реИ: https://github.com/socketio/socket.io/commit/2875d2cfdfa463e64cb520099749f543bbc4eb15
рддреЛ, generateId
рд╡рд┐рдзрд┐ рдЕрднреА рднреА v3 рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ sid
рдХреНрд╡реЗрд░реА рдкрд░рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧреА, рд╕реЙрдХреЗрдЯ рдХреА id
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдирд╣реАрдВред
рдХреНрдпрд╛ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ?
рдУрд╣ рдареАрдХ рд╣реИ! рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВ id
рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдкреАрд░.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реАрдбрд┐рдпреЛ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рддрдХ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреАрдЕрд░.рдЬреЗрдПрд╕ рдХреЛ рдЗрд╕рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛), рдЬреИрд╕рд╛ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 3.0 рдореЗрдВ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдирд░реЗрдЯ рдЖрдИрдбреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрднреА рднреА рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдм socket.id рд╕рдВрдкрддреНрддрд┐ рдХреА рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди @darrachequesne рдкрд╣рд▓реЗ рдХреА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╕рдВрдкрддреНрддрд┐ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдирд╛:
const content = require('fs').readFileSync(__dirname + '/index.html', 'utf8');
const httpServer = require('http').createServer((req, res) => {
// serve the index.html file
res.setHeader('Content-Type', 'text/html');
res.setHeader('Content-Length', Buffer.byteLength(content));
res.end(content);
});
const io = require('socket.io')(httpServer);
io.engine.generateId((req) => {
console.log('This line is never executed');
return new Date().valueOf().toString()
});
io.on('connection', socket => {
console.log('connect');
console.log(socket.sid);
});
httpServer.listen(3000, () => {
console.log('go to http://localhost:3000');
});
рд╕рдорд╛рд░реЛрд╣ рдХрднреА рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
@BrianHVB рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ:
io.engine.generateId = ((req) => {
console.log('This line is never executed');
return new Date().valueOf().toString()
});
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?
@darrachequesne - рдУрд╣, рд╣рд╛рдБ, рд╡рд╣ рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред