Socket.io-client: ๋ฏธ๋“ค์›จ์–ด ์˜ค๋ฅ˜๊ฐ€ ํฌ์ฐฉ๋˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2014๋…„ 06์›” 05์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: socketio/socket.io-client

๋‚ด๊ฐ€ ์‹ค์ˆ˜๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฏธ๋“ค์›จ์–ด ์˜ค๋ฅ˜๋ฅผ ์žก์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์„œ๋ฒ„ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

(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 ์š”์ฒญ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. @oliveiragabriel07 ์†”๋ฃจ์…˜๋„ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ๋ฐ˜ ์—ฐ๊ฒฐ ๋ฏธ๋“ค์›จ์–ด( io.use )์—์„œ throw๋œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ socket.io ์„œ๋ฒ„ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  8 ๋Œ“๊ธ€

์•„๋ฌด๋„?

๊ท€ํ•˜์˜ ์˜ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ ๋˜๋Š” ์ €์žฅ์†Œ์— ์‹คํŒจ๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊ทธํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๊นŒ?

+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/the 'error' ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฏธ๋“ค์›จ์–ด ์˜ค๋ฅ˜๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. @oliveiragabriel07 ์†”๋ฃจ์…˜๋„ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ๋ฐ˜ ์—ฐ๊ฒฐ ๋ฏธ๋“ค์›จ์–ด( io.use )์—์„œ throw๋œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ socket.io ์„œ๋ฒ„ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@jbaez์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๋ฅผ ์žก์œผ๋ ค๋ฉด next() ๋‹ค์Œ์— ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด express.js์—์„œ๋„ ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

io.use(function (socket, next) {
       next(new Error('refused client')); 
       return;
});

์ด๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค

io.use(function (socket, next) {
       return next(new Error('refused client'));
});
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰