Socket.io: socket.ioμ—μ„œ 폴링을 μ‚¬μš©ν•˜λŠ” λ™μ•ˆ HTTP 헀더 400 κ°€μ Έμ˜€κΈ°

에 λ§Œλ“  2015λ…„ 04μ›” 22일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: socketio/socket.io

μ•ˆλ…•,

socket.ioμ—μ„œ 폴링을 μ‚¬μš©ν•˜λŠ” λ™μ•ˆ 400개의 HTTP 헀더λ₯Ό 많이 μ–»μŠ΅λ‹ˆλ‹€.
nodejs ν΄λŸ¬μŠ€ν„°λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
λ‹€μŒμ€ μ½”λ“œ μŠ€λ‹ˆνŽ«μž…λ‹ˆλ‹€.

if (cluster.isMaster) {
// 포크 μ›Œμ»€.
//CPU 수=1;
for (var i = 0, i < numCPUs-1, i++) {
ν΄λŸ¬μŠ€ν„°.포크();
}
}
// μž‘μ—…μž μ½”λ“œ:
또 λ‹€λ₯Έ{

var socket_io = require('socket.io')(μ„œλ²„);
var redis_adapter = require('socket.io-redis');
socket_io.adapter(redis_adapter({ 호슀트: config.redis.ip, 포트: config.redis.port }));

//λ‚˜λ¨Έμ§€ μ½”λ“œ
socket_io.on('μ—°κ²°', ν•¨μˆ˜(μ†ŒμΌ“) {

}

이와 κ΄€λ ¨ν•˜μ—¬ λͺ¨λ“  포인터가 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

미리 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€

Closed due to inactivity

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•! μ˜ˆμ œκ°€ λ§Žμ§€ μ•Šμ•„ socket.io둜 ν΄λŸ¬μŠ€ν„°λ₯Ό μ„€μ •ν•˜λŠ” 데 λ§Žμ€ 어렀움을 κ²ͺμ—ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 일뢀 raspberryPiλ₯Ό μ œμ–΄ν•˜λŠ” ​​데 μ‚¬μš©ν•˜λŠ” μž‘μ—… μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

https://github.com/jordanpappas/raspi-car/tree/master/server

이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방법을 보여주기 μœ„ν•΄ λ³„λ„μ˜ 예제λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•˜μ§€λ§Œ μ§€κΈˆμ€ λ§ν¬μ—μ„œ 인덱슀 νŒŒμΌμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €λ©΄ λͺ‡ 가지 μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  1. redis μ‚¬μš©(이미 κ·Έλ ‡κ²Œ ν•˜λŠ” 것 κ°™μœΌλ―€λ‘œ μ–΄λŒ‘ν„°λ₯Ό λ‚΄ μ˜ˆμ œμ— μ—°κ²°ν•œ 방법을 λΉ„κ΅ν•˜μ‹­μ‹œμ˜€)
  2. μ›Ή μ†ŒμΌ“λ§Œ μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. 이것은 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ λͺ¨λ‘μ— ν•΄λ‹Ήλ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 였λ₯˜λŠ” 폴링과 관련이 μžˆμœΌλ―€λ‘œ μ‚¬μš©ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. μ΄λ ‡κ²Œ ν•˜μ„Έμš”
var io = sio(server, { 'transports': ['websocket'] });

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ:

var socket = io.connect('http://localhost:3000', { 'transports': ['websocket'] });

μ΄λ ‡κ²Œ ν•˜λ©΄ μ˜¬λ°”λ₯Έ λ°©ν–₯으둜 μ΄λ™ν•˜κ²Œ 되며 κ°„λ‹¨ν•œ 예제λ₯Ό ν•¨κ»˜ λ§Œλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  4 λŒ“κΈ€

μ•ˆλ…•! μ˜ˆμ œκ°€ λ§Žμ§€ μ•Šμ•„ socket.io둜 ν΄λŸ¬μŠ€ν„°λ₯Ό μ„€μ •ν•˜λŠ” 데 λ§Žμ€ 어렀움을 κ²ͺμ—ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 일뢀 raspberryPiλ₯Ό μ œμ–΄ν•˜λŠ” ​​데 μ‚¬μš©ν•˜λŠ” μž‘μ—… μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

https://github.com/jordanpappas/raspi-car/tree/master/server

이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방법을 보여주기 μœ„ν•΄ λ³„λ„μ˜ 예제λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•˜μ§€λ§Œ μ§€κΈˆμ€ λ§ν¬μ—μ„œ 인덱슀 νŒŒμΌμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €λ©΄ λͺ‡ 가지 μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  1. redis μ‚¬μš©(이미 κ·Έλ ‡κ²Œ ν•˜λŠ” 것 κ°™μœΌλ―€λ‘œ μ–΄λŒ‘ν„°λ₯Ό λ‚΄ μ˜ˆμ œμ— μ—°κ²°ν•œ 방법을 λΉ„κ΅ν•˜μ‹­μ‹œμ˜€)
  2. μ›Ή μ†ŒμΌ“λ§Œ μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. 이것은 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ λͺ¨λ‘μ— ν•΄λ‹Ήλ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 였λ₯˜λŠ” 폴링과 관련이 μžˆμœΌλ―€λ‘œ μ‚¬μš©ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. μ΄λ ‡κ²Œ ν•˜μ„Έμš”
var io = sio(server, { 'transports': ['websocket'] });

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ:

var socket = io.connect('http://localhost:3000', { 'transports': ['websocket'] });

μ΄λ ‡κ²Œ ν•˜λ©΄ μ˜¬λ°”λ₯Έ λ°©ν–₯으둜 μ΄λ™ν•˜κ²Œ 되며 κ°„λ‹¨ν•œ 예제λ₯Ό ν•¨κ»˜ λ§Œλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ¬Όλ‘ μž…λ‹ˆλ‹€. 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. 라이브러리 μžμ²΄μ—μ„œ μž‘μ—…μžλ₯Ό μƒμ„±ν•˜κΈ° λ•Œλ¬Έμ— 잘λͺ»λœ ν΄λŸ¬μŠ€ν„° μž‘μ—…μž λ‚΄λΆ€μ˜ κ³ μ • μ„Έμ…˜ 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

ν•΄λ‹Ή λ¬Έμ œλŠ” μžλ™μœΌλ‘œ μ’…λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΅œμ‹  릴리슀둜 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κ³  ν•„μš”ν•œ 경우 λ‹€μ‹œ μ—¬μ‹­μ‹œμ˜€(κ°€λŠ₯ν•œ 경우 문제λ₯Ό μž¬ν˜„ν•˜λŠ” λ°”μ΄μ˜¬λ¦° μ‚¬μš©).

이 λ¬Έμ œμ—μ„œ 4μ‹œκ°„ λ‚­λΉ„

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰