Socket.io: GenerateId 3x . рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдирд╡ре░ 2020  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io

рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

  • [x] рдПрдХ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
  • [] рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░

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 рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХрд▓ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореБрдЭреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЙрдХреЗрдЯ рдЖрдИрдбреА рдкреНрд░рд╛рд░реВрдк рдорд┐рд▓рддрд╛ рд╣реИред

рд╕реЗрдЯ рдЕрдк

  • рдУрдПрд╕: рд╡рд┐рдВрдбреЛрдЬ 10, рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
  • рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд╕рдВрд╕реНрдХрд░рдг: 3.0.0 рдФрд░ 3.0.3

рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА (рдЬреИрд╕реЗ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕, рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ, рд╕реБрдЭрд╛рд╡ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ)

рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдлреЗрдВрдХреА рдЬрд╛рддреА рд╣реИ, рдкреНрд░рд╛рд░реВрдк рдмрд╕ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдБ, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред

рдпрд╣рд╛рдБ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реИ: 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 - рдУрд╣, рд╣рд╛рдБ, рд╡рд╣ рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Aweather picture Aweather  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

samccone picture samccone  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

karmac2015 picture karmac2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

distracteddev picture distracteddev  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rudijs picture rudijs  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ