Socket.io: рдХреЛрд░реНрд╕

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдлрд╝рд░ре░ 2017  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io

рд╣реЗрдЬ,

рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦ Access-Control-Allow-Origin рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ?
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ {'origins' : 'asfdasd.com'} рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред

рдкреЛрд╕реНрдЯ /socket.io/?EIO=3&transport=polling&t=1481690658797-5&sid=Dp18NNt_bWPkB4rGAAAP HTTP/1.1
рдЙрддреНрдкрддреНрддрд┐: https://evilhost.net

HTTP/1.1 400 рдЦрд░рд╛рдм рдЕрдиреБрд░реЛрдз
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдЬреЗрд╕рди
рдПрдХреНрд╕реЗрд╕-рдХрдВрдЯреНрд░реЛрд▓-рдЕрдиреБрдорддрд┐-рдкреНрд░рдорд╛рдг-рдкрддреНрд░: рд╕рддреНрдп
рдПрдХреНрд╕реЗрд╕-рдХрдВрдЯреНрд░реЛрд▓-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐: https://evilhost.net
рджрд┐рдирд╛рдВрдХ: рд╢реБрдХреНрд░, 03 рдлрд░рд╡рд░реА 2017 12:27:42 рдЬреАрдПрдордЯреА
рдХрдиреЗрдХреНрд╢рди: рдЬрд╝рд┐рдВрджрд╛ рд░рдЦреЗрдВ
рд╕реНрдерд╛рдирд╛рдВрддрд░рдг-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: рдЦрдВрдбрд┐рдд

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@thEpisode рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреБрд░рд╛рдирд╛ рдзрд╛рдЧрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛! рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ app.listen(...) рд▓реЗрдХрд┐рди socket.io рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ index.js рдЖрдк http.listen(...) рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рди рд╕реБрдиреЗрдВ app рдСрдмреНрдЬреЗрдХреНрдЯ, рдпрд╛ рдЖрдкрдХреЛ рдпрд╣ CORS рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рдЬрд╛рдПрдЧреАред рдЗрддрдиреА рдЫреЛрдЯреА рд╕реА рдмрд╛рдд!

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

рд╡рд╣реА рддреНрд░реБрдЯрд┐

@Kenzku @thEpisode socket.io рдХрд╛ рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЗрд╕реЗ 2.x рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрд┐рд╕рдореЗрдВ https://github.com/socketio/engine.io/pull/452 рд╢рд╛рдорд┐рд▓ рд╣реИ)ред

рд╣рд╛рдп @darrachequesne рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдХреНрд░реЙрд▓рд░ рд╕рд╛рдЗрдЯ (https://www.crawlersite.com) рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реВрдВ рдФрд░ рд╣рдо рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП Socket.io рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрдЬрд╝реВрд░ рдкрд░ рд╣реИрдВ, рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкрд╣рд▓реЗ рдмреАрдЯрд╛ рдЯреЗрд╕реНрдЯрд░ рдПрдЬрд╝реВрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рд╣реЗрд╡рди рдХрд░рддреЗ рд╣реИрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдпрд╛ рдмреАрдЯрд╛рдЯреЗрд╕реНрдЯрд░ рджреВрд╕рд░реЗ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдиреЗ рдПрдХ рдмрдЧ рдХреА рд╕реВрдЪрдирд╛ рджреАред рд╕рдорд╕реНрдпрд╛ CORS рд╣реИ, рд╣рдо рд╕рднреА рдкреНрд░рд╢реНрди Google рдкрд░ рдкрдврд╝рддреЗ рд╣реИрдВ !! рдФрд░ рдЦреЛрдЬ рд╕рдорд╛рдзрд╛рди рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ Socket.io 2.0 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕рд░реНрд╡рд░ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ 2.0.1), рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ, рд╣рдо рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдиреЗ CORS рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рднреА рд╕реВрдЪрдирд╛ рджреА рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

рд╣рдо рдмрд╣реБрдд рдирд┐рд░рд╛рд╢ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ Google рдкрд░ рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЗрд╕реЗ GitHub рдореБрджреНрджреЛрдВ рдпрд╛ StackOverflow рдкрд░ рдкреЛрд╕реНрдЯ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд┐рд╡рд░рдг рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ URL:

рдмреИрдХрдПрдВрдб рдпреВрдЖрд░рдЖрдИ: http://crawlerbackend.azurewebsites.net
рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд░реЗрд╕ CORS: https://testcors.000webhostapp.com (рдпрд╣ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
рдкрд░реАрдХреНрд╖рдг Socket.io CORS: https://testcrawlersite.000webhostapp.com (рдХреГрдкрдпрд╛ рдХрдВрд╕реЛрд▓ рджреЗрдЦреЗрдВ)
рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкреНрд░рд╛рдердорд┐рдХ рд╕рд╛рдЗрдЯ: http://crawler-test.azurewebsites.net (рдирдП рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ)
Socket.io рдлрд╝рд╛рдЗрд▓: http://crawlerbackend.azurewebsites.net/socket.io.js

рд╣рдорд╛рд░реЗ app.js рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛:
`
рд╡рд░ рдкрде = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдкрде');
var bodyParser = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдмреЙрдбреА-рдкрд╛рд░реНрд╕рд░');
var cors = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('cors');
рд╡рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдПрдХреНрд╕рдкреНрд░реЗрд╕');
рд╡рд░ рдРрдк = рдПрдХреНрд╕рдкреНрд░реЗрд╕ ();

// use body parser so we can get info from POST and/or URL parameters
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
app.use(bodyParser.json()); // support json encoded bodies
app.use(cors({ origin: '*' }));
// Settings for CORS
app.use(function (req, res, next) {

    // Website you wish to allow to connect
    res.header('Access-Control-Allow-Origin', '*');

    // Request methods you wish to allow
    res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');

    // Request headers you wish to allow
    res.header('Access-Control-Allow-Headers', 'X-Requested-With,content-type');

    // Set to true if you need the website to include cookies in the requests sent
    // to the API (e.g. in case you use sessions)
    res.setHeader('Access-Control-Allow-Credentials', false);

    // Pass to next layer of middleware
    next();
});

var server = app.listen(cross.NormalizePort(process.env.PORT || 3500));
var io = require('socket.io').listen(server, {
    log: false,
    agent: false,
    origins: '*:*',
    transports: ['websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling', 'polling']
});

`

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реБрдЖ!! @Kenzku рдХреГрдкрдпрд╛ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ: https://github.com/socketio/socket.io/blob/master/docs/API.md#serveroriginsvalue рдФрд░ рдХреЛрдб рджреЗрдЦреЗрдВ: https://github.com/socketio/socket.io /blob/master/lib/index.js#L67 рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ): https://github.com/socketio/socket.io#in -conjunction-with-express

рдорд╣рд╛рди! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@thEpisode рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреБрд░рд╛рдирд╛ рдзрд╛рдЧрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛! рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ app.listen(...) рд▓реЗрдХрд┐рди socket.io рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ index.js рдЖрдк http.listen(...) рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рди рд╕реБрдиреЗрдВ app рдСрдмреНрдЬреЗрдХреНрдЯ, рдпрд╛ рдЖрдкрдХреЛ рдпрд╣ CORS рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рдЬрд╛рдПрдЧреАред рдЗрддрдиреА рдЫреЛрдЯреА рд╕реА рдмрд╛рдд!

@frewinchristopher рдореИрдВ рдЙрд╕реА рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ рд╣реИ, рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рд░рд┐рдореЛрдЯ рдореЗрдВ рдпрд╣ рдлреЗрдВрдХрддрд╛ рд╣реИ (рдХрд╛рд░рдг: CORS рдЕрдиреБрд░реЛрдз рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖ)ред рдореИрдВ рдХрд╣рд╛рдБ рдЧрд▓рдд рд╣реВрдБ..?

@gowthamyaal рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рд╕реАрдУрдЖрд░рдПрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЛрдЪрджрд╛рд░ рдЖрдИрдкреА рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдШрд░реНрд╖ рд╣реИ, рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рд╕реЙрдХреЗрдЯ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рдЖрдИрдкреА рдХреЛ 0.0.0.0 рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдЕрдм рд░рд┐рдореЛрдЯ рдореЗрдВ рд░реЗрд╕ рдХрдВрдбреАрд╢рди рдЗрд╢реНрдпреВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рд╡реЗрдмрдкреИрдХ-рджреЗрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЙрд╕реА рдлрд╛рдЗрд▓ рдореЗрдВ рдЖрдИрдУ рдХрдиреЗрдХреНрдЯ рдФрд░ рдПрдорд┐рдЯ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рд▓реЗрдХрд┐рди рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖ

рд╡реЗрдмрдкреИрдХ-рджреЗрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ рдХреЛрдб
;)

рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ .... рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ .... рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рдж

рдореИрдВрдиреЗ рдЙрди рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрднреА рднреА рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрдирд╛ рдмрд╛рдХреА рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

`рдХреЙрдиреНрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╕ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдПрдХреНрд╕рдкреНрд░реЗрд╕')
рдХреЙрдиреНрд╕реНрдЯ http = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('http')
рдХреЙрдиреНрд╕реНрдЯ рд╕реЙрдХреЗрдЯрд┐рдпреЛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ')
const cors = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('cors')

// рд╣реЛрд╕реНрдЯ рдкреЛрд░реНрдЯ
рдХреЙрдиреНрд╕реНрдЯ рдкреЛрд░реНрдЯ = 3001

рдХреЙрдиреНрд╕реНрдЯ рдРрдк = рдПрдХреНрд╕рдкреНрд░реЗрд╕ ()
app.use(cors())
// рд╕рд░реНрд╡рд░ рдЙрджрд╛рд╣рд░рдг
рдХреЙрдиреНрд╕реНрдЯ рд╕рд░реНрд╡рд░ = http.createServer (рдРрдк)
// рд╕рд░реНрд╡рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЙрдХреЗрдЯ рдмрдирд╛рдПрдВ
рдХреЙрдиреНрд╕реНрдЯ рдЖрдИрдУ = рд╕реЙрдХреЗрдЯрд┐рдпреЛ (рд╕рд░реНрд╡рд░)

io.origins ("http://localhost:3000")

io.on ('рдХрдиреЗрдХреНрд╢рди', рд╕реЙрдХреЗрдЯ => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ("рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдиреЗрдХреНрдЯреЗрдб")

socket.on('disconnect', () => {
    console.log("User Disconnected")
})

socket.on('send message', (message) => {
    io.sockets.emit('send message', message)
})

})

server.listen(port, () => console.log( Listening on port ${port} ))`

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

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

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

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

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

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

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