λ΄ socket.io μμ© νλ‘κ·Έλ¨κ³Ό λ€λ₯Έ μ¬λ λͺ¨λμμ μ΄κ²μ λ°κ²¬νμ΅λλ€. μ¬ μ°κ²°μ΄ λ°μνλ©΄ ν΄λΌμ΄μΈνΈ λ΄μμ λ κ° μ΄μμ μμΌμ΄ μ΄λ¦¬λ κ²μ΄ μΌλ°μ μ΄λ©° μ λλ‘ λ°μν΄μλ μλ©λλ€.
λ€μμ μ°κ²°μ λκ±°λ λ€μ μ°κ²°νμ λ μ체 ν μ€νΈ μμ© νλ‘κ·Έλ¨μμ μ»μ λ‘κ·Έμ λλ€.
** μ°κ²° ν΄μ * * μ§μ°μΌλ‘ μ¬ μ°κ²° 1000 ν μλ : 1
** μ§μ°λ μ¬ μ°κ²° 2000 μλ : 2* * xhr-pollingμΌλ‘ μ°κ²°
** xhr-pollingμΌλ‘ μ°κ²°* * xhr-polling μ μ‘ μ νμΌλ‘ μ¬ μ°κ²° μλ : 2
** μ°κ²°λ¨* * μ°κ²°λ¨
μ΄λ° μΌμ΄ λ°μνλ©΄ νλλ§ μμ΄μΌνμ§λ§ μ°κ²°λ κ° μμΌμ λν΄ νλμ© μ€λ³΅ λ©μμ§κ° μ μ‘λ©λλ€. Firebugμ μν΄ μ€μ λ‘ μ°κ²°λ ν΄λΌμ΄μΈνΈμμ λ κ°μ μμΌμ΄ μμμ΄ νμΈλμμ΅λλ€. λ΄ κ°μ₯ μ’μ μΆμΈ‘μ μ΄κ²μ΄ ν΄λΌμ΄μΈνΈ μ½λμ μλ€λ κ²μ λλ€. μλ§λ 첫 λ²μ§Έ μ¬ μ°κ²° μλλ₯Ό λ«μ§ μμ κ²μ λλ€.
λ¬Όλ‘ μ§μ§ μ§λ¬Έμ μ μ΄μ μ λ¨μ μ΄ μμμκΉμ?
κΈ°μ μ μΌλ‘ ν΄λΌμ΄μΈνΈμ μλ²μ μ°κ²°μ΄ λμ΄ μ‘κΈ° λλ¬Έμ μ°κ²° ν΄μ κ° μμλ©λλ€. μ¬ μ°κ²° μ΄λ²€νΈκ° λ€μ λ°μν λκΉμ§ μ°κ²°μ΄ λμ΄μ§λλ€.
κ·Έλ¬λ λλ¨Έμ§λ λ²κ·Έμ λλ€.
μ΄κ²μ΄ λ΄ μμ© νλ‘κ·Έλ¨μ λ²κ·Έμ λν μ΄μ λΌκ³ μκ°ν©λλ€.
μλ² μΈ‘μμλ μλ‘μ΄ μ½μ λ¬Όμ΄μμ λλ§λ€ μ€νλλλ‘ mongodbμ 꼬리κ°μλ 컀μλ₯Ό λ§λ€μμ΅λλ€. μ΄ λ©μμ§λ io.sockets.emit ()λ₯Ό ν΅ν΄ μ°κ²°λ λͺ¨λ μ¬λμκ² μ μ‘λ©λλ€.
κ·Έλ¬λ μ΄λ²€νΈ λΉ νλμ λ©μμ§ λ§λ°λ λμ ν΄λΌμ΄μΈνΈ μΈ‘μμ μ¬λ¬ κ°μ λ°λ³΅ λ©μμ§λ₯Όλ°μ΅λλ€.
μ λ μΈν°λ· μ°κ²°μ΄ λ§€μ° λΆμμ νκΈ° λλ¬Έμμ΄ λ²κ·Έκ° λ΄ μ½λμλ μν₯μ λ―ΈμΉκ³ μλ€κ³ μκ°ν©λλ€.
μ¬λ¬λΆλ€μ expressjsλ₯Ό μ¬μ©νκ³ κ³ μ ¨λμ? λλ Express μμ΄ λ¬Έμ κ° μμκ³ μμ΄ λ€μ μμ±νμΌλ©° μ μλνμ΅λλ€.
Expressλμ΄ @mfkp μ μ ν κ΄λ ¨μ΄ νμ μ νλ¦Ό μμ΅λλ€.
@visionmedia μ λμνλ©° Expressκ° μλ socket.ioμ λ²κ·Έμ λλ€. νμ¬ μ¬ μ°κ²° ꡬνμ μ¬μ ν ββ0.6 μ©μΌλ‘ μ€κ³ λμκΈ° λλ¬Έμ μΌλΆ κ²μ¬ λ° μ λ¦¬κ° λλ½λμμ΅λλ€.
μ, μκ² μ΅λλ€. μ κ²½ μ°μ§ λ§, κ³μν΄ ;-)
μ΄κ²μ +1. socket.ioκ° μ¬λ¬ μ°κ²°μ μ¬λ μ±ν μ±μ κ°νμ μΈ λ¬Έμ μ λλ€. κ·Έλ° λ€μ ν΄λΌμ΄μΈνΈλ λͺ¨λ λ°©μΆμ 볡μ λ₯Ό μμ ν©λλ€.
+1. μΉ μμΌ λ° ν¬λ‘¬. λ ΈνΈλΆμ΄ μ μ λͺ¨λλ‘ μ ν-> κΉ¨μ΄ λ ν μ±μ΄ λ€μ μ°κ²°λ¨-> μ΄μ€ μ΄λ²€νΈ. μ격 μλ²μ μ°κ²°ν λλ§ λ°μν©λλ€. μ΄ λ¬Έμ λ₯Ό λ‘컬μμ μ¬ν ν μ μμ΅λλ€. μΌλΆ μ¬ μ°κ²° / λ€νΈμν¬ λκΈ° μκ° λ¬Έμ μ¬μΌν©λλ€.
μ΄ ν μ¬λ¬ μ°κ²°μ μ κ±°νλ ν΄κ²° λ°©λ²μ΄ μμ΅λκΉ? μλ₯Ό λ€μ΄ ν΄λΌμ΄μΈνΈ μΈ‘μμ socket.disconnect ()λ₯Ό μννλ©΄ λͺ¨λ μ°κ²°μ΄ λμ΄ μ§λκΉ? μ¬λ¬ μ
λ°μ΄νΈλ₯Ό νΌνκ³ μΆμ΅λλ€. λ€μμ μλν©λκΉ?
μμΌ = io.connect (url)
socket.on ( 'connect', function () {
if (multipleConnect) {
socket.disconnect ();
socket.removeAllListeners ( 'connect');
io.sockets = {};
μμΌ = io.connect (url);
socket.on ( 'connect', functionToConnect);
}
})
https://github.com/LearnBoost/socket.io/issues/474#issuecomment -2833227μ μ½μΌμμμ€.
μ΄ λ²κ·Έκ° λ°μνλ μ΄μ μ μ¬ν λ°©λ²μ μ€λͺ
ν©λλ€.
@ 3rd-Eden-μ΄ μμ μ¬νμ΄ ν μΌ λͺ©λ‘ / μ°μ μμμ μνλμ§ μμλκΉ? λ΄κ° λ§λ€κ³ μλ μ±μ΄ μλλ° μ΄κ²μ μ¬μ©νλ €κ³ κ³ννκ³ ν΄λΌμ΄μΈνΈμκ² iOS μ₯μΉμμ μ λλ‘ λ€μ μ°κ²°λ κ²μ΄λΌκ³ λ§ν μ μκΈ°λ₯Ό λ°λλλ€. μμ© νλ‘κ·Έλ¨μ΄ λ°±κ·ΈλΌμ΄λλ‘ μ νλκ±°λ μ₯μΉκ° μ μ λͺ¨λλ‘ μ νλλ©΄ μ°κ²°μ΄ λμ΄μ§λλ€.
λλ ν΄κ²° λ°©λ²μ μ½λ© ν μμλ λ°©λ²μ λν΄ μκ³ μμ΅λκΉ? μ§λ λ©°μΉ λμ λͺ κ°μ§ μμ μ ν΄μμ§λ§ μ΅μμ κ²½μ° νμ λ무 λ§μ μ°κ²°μ μ΄μ΄λκ³ λͺ¨λ μμΌμ μ μ₯λ λ°μ΄ν°λ₯Ό μμ νλ κ² κ°μ΅λλ€. λ°μ΄ν°λ ν΄λΌμ΄μΈνΈμ μ¬ μ°κ²° νΈλ¦¬κ±°λ₯Ό μ¬μ©νμ¬ λ¬Έμ λ₯Ό ν΄κ²°ν μμλ μΈμμ λμ΄ μλμ§λ§ λμ μ°κ²°μ μ½κ° μΆν©λλ€.
κ°μ¬!
@cris μ΄κ²μ΄ λΉμ μ΄ μΈκΈ ν κ²κ³Ό λμΌν λ²κ·ΈμΈμ§ νμ€νμ§ μμ΅λλ€. μλ² μλ μ νμμ΄ λ²κ·Έμ λν λ§€μ° κ°λ¨ν μκ° μμ΅λλ€.
λ€μμ ν΅ν΄μ΄ λ¬Έμ λ₯Ό λͺ ννκ² μ¬ν ν μ μμ΅λλ€.
ν΄λΌμ΄μΈνΈκ° λ€μ μ°κ²°ν λ κ°κ°μ λν΄ 'μ°κ²°'μ΄λ²€νΈλ₯Ό μμ±νλ 2-4 κ°μ μ°κ²°μ μμ±νλμ§ νμΈν©λλ€. μλ²λ ν΄λΌμ΄μΈνΈλ‘λΆν° 2-4 κ°μ μ°κ²°μ μμ νκ³ κ°κ°μ λν΄ 'μ°κ²°'μ΄λ²€νΈλ₯Ό λ΄ λ³΄λ λλ€. ν΄λΌμ΄μΈνΈλ μλͺ» μμλ μ°κ²°μ λ«μ§ μμ΅λλ€.
server.js : https://gist.github.com/1717643
client.html : https://gist.github.com/1717648
κ°μ¬. μ΄ λ²κ·Έκ° μ°μ μμκ°λμ΄μΌνλ€κ³ μκ°ν©λλ€. μ μμ§ λͺ»νλ λ§μ μμ νμ¬λ€μ socket.io νλ μ μν¬κ° μ μλνλ€κ³ μκ°νλ©΄μ μ¬λλ€μ κ³ μ©νμ¬ κ°λ°νλ €κ³ ν©λλ€. λ¬Όλ‘ socket.ioλ 무λ£μ΄λ―λ‘μ΄ μμ νμ¬λ μμ μ νμ μ΄ν΄ λ΄μΌ ν κ²μ λλ€. κ·Έλ¬λ λ€μ λ§νμ§λ§, μ΄κ²μ λ§€μ° λμ μ°μ μμλ‘ μ°μ μμλ₯Ό μ ν΄μΌνλ€κ³ μκ°ν©λλ€. μ΄ λ²κ·Έλ 0.7.0 μ΄ν μ‘΄μ¬νμΌλ©° μ½κ² μ¬ν ν μ μμ΅λλ€.
@davidfooks , @theyak. λλ μ€λ μ μμ΄ λ¬Έμ λ₯Ό ν΄κ²°νμΌλ©° μλμμ΄ μλν©λλ€.
μμ νλ €λ©΄ λ€μμ μνν΄μΌν©λλ€.
AJAX νΈλ μ °μ΄ν¬λ₯Ό μ΄λ»κ² λΉνμ±νν©λκΉ? μ¬μ ν λͺ¨λ μ°κ²° μ νμ μ¬μ©ν μ μλ€κ³ κ°μ ν©λλ€. μ΄κ²μ΄ νΈλ μ °μ΄ν¬μλ§ μν₯μ λ―ΈμΉ©λ κΉ?
+1 μμ ν΄μ£ΌμΈμ :)
λ€μ μ°κ²° λ¬Έμ μ λν΄ λμΌν λ€μ€ μ°κ²°μ΄ λ°μνμ΅λλ€. μ¬κ°ν λ¬Έμ λΌκ³ μκ°ν©λλ€ ...
μμΈμ Socket.connect λ©μλκ° νΈμΆλμμ§λ§ conneting νλκ·Έλ νΈλ μ
°μ΄ν¬κ° μλ£λ νμ λ§ ββtrueλ‘ μ€μ λμ΄ μκΈ° λλ¬Έμ
λλ€. λ€μ μ°κ²°νλ©΄ μ¬λ¬ λ² λ€μ μ°κ²°λ©λλ€.
Socket.connect λ©μλμ μμ λΆλΆμμ self.reconnectingμ νΈμΆνμ¬ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
ν¨μΉ μμ± : https://github.com/LearnBoost/socket.io-client/pull/424
λ³ν© ν κ°λ₯μ±μ΄ μμ΅λκΉ?
μ΄ λ²κ·Έλ λ΄ μ±μμλ λμ λ²κ·Έλ₯Ό λ§λ€κ³ μμ΅λλ€.
μ΄ λ²κ·Έλ μ¬μ ν μ‘΄μ¬ν©λλ€. λ ν¨μΉλ₯Ό λͺ¨λ μλνμ΅λλ€. μ±κ³΅νμ§ λͺ»νμ΅λλ€.
+1 xhr-pollingμ μ¬μ©νμ¬μ΄ λ¬Έμ κ° λ§μ΄ λ°μν©λλ€. μμ§ ν¨μΉλ₯Ό μλνμ§ μμμ΅λλ€.
+1, μ€λ³΅ μ¬ μ°κ²°μ λν΄μλμ΄ λ¬Έμ κ° μμ΅λλ€.
Node.jsκ° λ€μ μμλ λλ§λ€ (μ¦, μνΌλ°μ΄μ λ₯Ό ν΅ν΄ μ€νλ λ) ν΄λΌμ΄μΈνΈκ° μ²μ μ°κ²°λμλ μ§μ μμ Node.jsκ° λ€μ μμλ νμμ X λ°°κ° λ€μ μ°κ²°λ©λλ€. μ΄ λ²κ·Έλ‘ μΈν΄ ν΄λΌμ΄μΈνΈ μΈ‘μμ μ¬ μ°κ²°ν λλ§λ€ ν λ²μ© μ΄λ²€νΈκ° λ°μν©λλ€. μ΄κ²μ λ¨μ§ μ€λ³΅ λ¬Έμ κ° μλλλ€.
ν΄λΌμ΄μΈνΈ μΈ‘μμ socket.on('disconnect', function() { socket.disconnect(); });
μλνμ§λ§ μλνμ§ μμ΅λλ€. : /
μ΄κ²μ μ‘°κΈ λ μ‘°μ¬ ν΄λ³΄λ©΄ λ΄ λ¬Έμ μ μμΈμ μ°Ύμ κ² κ°μ΅λλ€. λ²κ·Έ λ μλμ§λ§ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λμ μλͺ»λ ꡬνμ λλ€. facepalm μ΄κ²μ λ΄κ° μλ κ°μ§κ³ μλ κ²μ λλ€ :
λ¬Έμ :
var socket = io.connect();
socket.on('connect', function () {
console.log('User connected!');
socket.on('message', function(message) {
console.log(message);
});
});
μμ ν΄λΌμ΄μΈνΈ μΈ‘ JavaScriptλ ν΄λΌμ΄μΈνΈκ° λ€μ μ°κ²°λ λ console.log ()λ₯Ό μ¬λ¬ λ² νΈμΆνμ΅λλ€. μ΄κ²μ μμ λ΄μ©μ λ€μμΌλ‘ λ체 ν κ²μ λλ€.
ν΄κ²°μ± :
var socket = io.connect();
socket.on('connect', function () {
console.log('User connected!');
});
socket.on('message', function(message) {
console.log(message);
});
μ΄μ ν΄λΌμ΄μΈνΈκ° μλ²μ λ€μ μ°κ²°ν λ μ¬λ¬ λ©μμ§κ° μλ€λ‘ μ μ‘λμ§ μμ΅λλ€. λ€λ₯Έ μ¬λμ΄ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λλ₯Ό λ³κ²½νλ©΄ λ¬Έμ κ° ν΄κ²°λλμ§ νμΈν μ μμ΅λκΉ?
μλ
νμΈμ. λλ κ°μ λ¬Έμ κ° μμλ€. λ
Έλλ₯Ό λ€μ μμν λ (λλ μ°κ²° μκ°μ΄ μ΄κ³Όλμμ λ) ν΄λΌμ΄μΈνΈκ° λ€μ μ°κ²°λμμ λ n λ² μλ²μμ λ°©μΆ λ λμΌν λ©μμ§λ₯Ό μμ νμ΅λλ€ (μ¬κΈ°μ nμ μ¬ μ°κ²° νμ).
λ΄ λͺ¨λ νΈλ€λ¬λ₯Ό socket.on ( 'connect'function () {...}); κ·Έκ²μ μΈλΆμ κΈ°λ₯.
μμ μ½λλ νμν μμ
μ μνν©λλ€.
μ΄κ²μ λ©μΌ λ§λ¦¬μ€νΈμ μ 체 λ΅λ³μ
λλ€.
https://groups.google.com/forum/?hl=ko&fromgroups#!topic/socket_io/X9FRMjCkPco
@xdanx , κ΅μ₯ν©λλ€. λ΅μ₯μ
μ, μ΄κ²μ μ μκ²λ μλνλ κ² κ°μ΅λλ€ : 'connect'μ΄λ²€νΈ μ½λμ λ³λλ‘ socket.on ( 'message') μ½λλ₯Ό λ£μΌμμμ€.
νμ§λ§ "μ°κ²°"μ μ΄λ»μ΅λκΉ?
κ·Έλ¦¬κ³ μ½λ°±μ "μμΌ"κ°μ²΄λ μ΄λ»μ΅λκΉ?
/ edit μ κ²½ μ°μ§ λ§μΈμ. ν΄λΌμ΄μΈνΈμ 'μ°κ²°'μ΄ μμ΅λλ€. λλ κ·Έκ²μνμ§ μμμ λ μ€νΈ μ¬ μ°κ²°μ μ¬μ ν λ¬Έμ κ° μμλ€. νμ§λ§ 그건 0.9.6μ΄μμ΅λλ€.
μ λ κ°μ λ¬Έμ κ°μλ κ² κ°μ΅λλ€. λ©μμ§ μ½λλ₯Ό λ³λμ λΈλ‘μΌλ‘ μ΄λνλ μμ μμ μ μλνμ§λ§ .. ν¨κ» κ°μ§κ³ μμ§ μλ€λ κ²μ μμμ΅λλ€.
0.9.8μμ μ΄μ λν λ€λ₯Έ ν΄κ²° λ°©λ²μ λν μμμ΄ μμ΅λκΉ?
λλ κ°μ λ¬Έμ λ₯Ό κ°μ§κ³ μλ€. 0.9.10μ΄ μ€μΉλμ΄ μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν λ°©λ²μ΄ μμ΅λκΉ? :(
btwλ 1 λ
μ΄ λμκ³ μμ§ μμ λμ§ μμμ΅λλ€ .. :(
νΈμ§νλ€.
jsonp-polling λ§ μ¬μ©νλ©΄ λ¬Έμ κ° μ¬λΌμ§ κ² κ°μ΅λλ€.
io.set ( 'transports', [ 'jsonp-polling']);
λλ κ°μ λ¬Έμ λ₯Ό κ°μ§κ³ μλ€.
μμΌ. [email protected]
λ
Έλ v0.8.8
@semprom jsonp-pollingμ μ¬μ©νλ©΄ websocket μ°κ²°μλ§ κ΄λ ¨μ΄ μκΈ° λλ¬Έμ λ¬Έμ κ° ν΄κ²°λλ€κ³ μκ°ν©λλ€.
λΆννλ μ μ μ 체 ꡬν μ νμ κ°λ₯ν ν λΉ λ₯Έ νΌλλ°±μ μμ‘΄νλ―λ‘ ν΄λ§κ³Ό λ¬λ¦¬ μΉ μμΌμ΄ κ°μ₯ μ μλνλ©° μ°κ²°νλ ν΄λΌμ΄μΈνΈλ₯Ό μ μ΄νκ³ μκΈ° λλ¬Έμμ΄ λ¬Έμ λ₯Ό μ μΈνκ³ λ λ€λ₯Έ μ΄μ κ° μμ΅λλ€. κ·Έλ°μ.
λ€μ μ°κ²°νλ λμΌν ν΄λΌμ΄μΈνΈμ μ¬λ¬ μ°κ²°μλ λμΌν socket.id
μμ΅λλ€. λ°λΌμμ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μμ μ μμΌ ID λͺ©λ‘μ μ μ§νκ³ μ€λ³΅μ 무μν μ μμ΅λλ€.
@KasperTidemann κ°μ¬ν©λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
@esanai λ¬Έμ μμ΅λλ€.
μλ νμΈμ, λμΌν λ¬Έμ κ° μμΌλ©° μ°κ²°μ΄ λ€μ μ°κ²°λ λλ§λ€ μ ν΄λΌμ΄μΈνΈ μμΌ IDκ° μμ±λλ€λ κ²μ μμμ΅λλ€. ν΄κ²°μ± μ io.set ( 'transports', [ 'jsonp-polling']); λλ KasperTidemannμ μ루μ μ μ¬μ©ν©λκΉ?
@KasperTidemann λ΄ λ§μμ¬, κ·Έκ² λ΄ λ¬Έμ μ λν λ΅μ λλ€! μ΄ μ»€λ°μ μ°Έμ‘°νμμμ€ : https://github.com/samuelclay/NewsBlur/commit/76cbbd8d8b2a787985bba724dc3562108492b017#L2L3887
λ¨μΌ node.js νμΌμμλμ΄ κ°λ¨ν ν΄λΌμ΄μΈνΈ λ° μλ² μ½λλ₯Ό μ¬μ©νμ¬ μ°κ²° μ€λ₯κ° λ°μν ν μ΄μ€ μ°κ²° μ΄λ²€νΈλ₯Ό μ¬ν ν μ μμ΅λλ€.
"use strict";
var server = require('socket.io');
var client = require('socket.io-client');
setTimeout(function () {
var io = server.listen(8888);
io.of('/chat').on('connection', function (socket) {
console.log('Server: /chat connection');
socket.emit('greeting', 'Hello, who are you?');
});
io.sockets.on('connection', function (socket) {
console.log('Server: connection');
});
}, 2000);
var socketAddress = 'http://localhost:8888/chat';
var socket = client.connect(socketAddress);
socket.on('connect', function () {
console.log("Client: connect");
});
socket.on('greeting', function (data) {
console.log("Client: greeting: ", data);
});
socket.on('error', function () {
console.log("Client: error");
socket.socket.reconnect();
});
λΌμ΄λ λ μμ μμ μ΄ μμ΅λκΉ?
λ―Έμνμ§λ§ λλ μ΄κ²μ # 474 νΈμ κ²μνμ΅λλ€.
iOS 9.3.2 λ° Chrome λ²μ 50.0.2661.95κ° μ€μΉλ iPhoneκ³Ό Socket.IO λ²μ 1.4.6μ΄ μ€μΉλ iOS μ© Safariμμμ΄ μ€λ₯λ₯Ό μλΉν μΌκ΄λκ² μ¬ν ν μ μμ΅λλ€.
λλ μ΄κ²μ λͺ¨λ°μΌμμλ§ μ¬ν ν μ μμΌλ©° socket.ioμ λν μμ²μ λ΄ νμ΄μ§λ₯Ό λ© μΆ₯λ λ€.
λλ κ°λ¨ν .on ( 'connect', function (socket) {console.log ( 'Connected');}); κ·Έλ¦¬κ³ μ€λ₯κ° λ°μνλ©΄ Connectedλ₯Ό λ λ² κΈ°λ‘νμ¬ λμμ μ¬λ¬ μμΌ μ°κ²°μ μ΄λ €κ³ μκ°νκ² λ§λλλ€.
λꡬλ μ§ μ΄κ²μ λν ν΄κ²° λ°©λ²μ μκ³ μμ΅λκΉ?
μ΄ λ¬Έμ κ° μ’ κ²° λ μ΄μ λ 무μμ λκΉ?
μμ 2014 λ 4 μ 14 μΌμ μμ μ½λλ λ μ΄μ μ΄μ€ μ°κ²° μ΄λ²€νΈλ₯Ό μμ±νμ§ μμ΅λλ€. '/ chat'μ λν μ°κ²° μ΄λ²€νΈμ μμΌ μ체μ λν μ°κ²° μ΄λ²€νΈκ° μμ΅λλ€. ν©λ¦¬μ μΌλ‘ 보μ λλ€.
λ μ΄μ ν΄λΌμ΄μΈνΈμμλ μ€λ₯κ° μμ΅λλ€.
socket.io 1.4.8 λ° λ Έλ 6.3.0μ λλ€.
μ΄ λ²κ·Έλ atmμ μν₯μμ€λλ€.
λΆλͺ ν socket_handlersκ° κ²½λ‘μ ν¨κ» λ°°μΉλλ©΄ μ¬λ¬ λ² νΈμΆλ©λλ€. app.js λ΄μμ μμΌ μ°κ²°μ μ¬μ©νκ³ μμΌ μ°κ²° λ΄μμ νΈλ€λ¬λ₯Ό μꡬνκ³ μμΌμ λ§€κ° λ³μλ‘ μ λ¬ν©λλ€. μΌλΆ μμ±μ μμΌ μΈμ€ν΄μ€μ ν¨κ» μ 곡λμ§ μμ μ μμ΅λλ€.
@leemlwando νμν κ²½μ° μ λ¬Έμ λ₯Όμ¬μμμ€.
ν΄λΌμ΄μΈνΈμμ μλ μ¬ μ°κ²° κΈ°λ₯μ λ§λ€κ³ io.destroy (); λ€μ μ°κ²° κΈ°λ₯ λ΄μμ λ¬Έμ κ° ν΄κ²°λμμ΅λλ€.
κ³ λ§μμ @leemlwando κ·νμ λ§μ§λ§ μ½λ©νΈκ° μ λ¬Έμ λ₯Ό ν΄κ²°νλλ‘ λ§λ€μμ΅λλ€.
μ΄ λ²κ·Έκ° κ³μ λ°μν©λλ€. μ λ°μ΄νΈκ° μμ΅λκΉ?
μ¬κΈ°μ μ μΌν μ§μ§ λ²κ·Έλ socket.on () νΈμΆμ΄ socket.on ( 'connect') νΈλ€λ¬ λ΄λΆμ λνλλ μλͺ»λ μμ μ½λκ° μΈν°λ·μ κ°λ μ°¨ μλ€λ κ²μ λλ€. μμΌμ΄ λ€μ μ°κ²°λ λλ§λ€ μ²λ¦¬κΈ°μ μ μΈμ€ν΄μ€κ° κΈ°μ‘΄ μΈμ€ν΄μ€ μμ μμ¬μ κ° μ΄λ²€νΈμ λν΄ μ¬λ¬ νΈμΆμ΄ λ°μν©λλ€. νμ§ λ§μμμ€ : 2012 λ 7 μ 25 μΌμ @KasperTidemann μ λ΅λ³μ μ°Έμ‘°νμμμ€.
μμμ μ μ ν μ½λλ₯Ό μ μΈνκ³ λ μλ§λ DrLexOκ° λ¬Έμ λ₯Ό 보μ¬μ£Όμμ΅λλ€. socket.on ( 'connect') νΈλ€λ¬ μμλ socket.on ()μ΄ λνλμ΄ μμ§ μμ΅λλ€.
λͺ λ μ΄ μ§λ νμλμ΄ λ²κ·Έμ λν μλ¦Όμ λ°κ³ μλ€λ μ¬μ€μ λλμ΅λλ€. λλ κ·Έκ²μ΄ μ¬μ ν μΌμΈμ§ μλμ§ μ ν λͺ¨λ₯Έλ€. λ€μ μλν΄μΌν©λκΉ?
@KasperTidemann κ°μ¬ν©λλ€. μ€μ λ‘ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
socket
μ‘μΈμ€ ν μμλ κ²½μ° connect
리μ€λμ _outside_ μ΄λ²€νΈ 리μ€λλ₯Ό μ΄λ»κ² μ μ ν μ μμ΅λκΉ?
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
io.on('connect', function(socket) {
// only now that we are inside the connect callback do we have access to the socket
socket.on('join', function(room, user) {
});
socket.on('add_message', function(room, user) {
});
socket.on('disconnect', function(room, user) {
});
});
μ¬λλ€μ μ΄λ²€νΈ 리μ€λ ( join
, add_message
λ° disconnect
)κ° λ
립μ μΌλ‘, _outside_ connect
리μ€λκ° μμ΄μΌνλ€κ³ μ μνλ κ² κ°μ΅λλ€. socket
μ μ μ€μ
λκΉ?
io.on('connect', function(socket) {
// socket is only available here
});
// socket is undefined here
socket.on('join', function(room, user) {
});
socket.on('add_message', function(room, user) {
});
socket.on('disconnect', function(room, user) {
});
μ΄κ²μ΄ κ°λ₯νλλ‘ socket
λ₯Ό μΈμ€ν΄μ€ννλ λ€λ₯Έ λ°©λ²μ΄ μμ΅λκΉ?
μ μ΄κ²μ΄ λ«ν μμ΅λκΉ? @ michael-lynchμ μ ν¨ν ν¬μΈνΈκ° μμ΅λλ€.
λλ λν @ michael-lynchμ μμ μ λν λ΅μ μκ³ μΆμ΅λλ€.
socket.io μΉ μ¬μ΄νΈ μμ μ @ DrLex0 μ λ€μμ μννλ κ²μ 보μ¬μ€λλ€.
io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
κ°μ₯ μ μ©ν λκΈ
μ΄κ²μ μ‘°κΈ λ μ‘°μ¬ ν΄λ³΄λ©΄ λ΄ λ¬Έμ μ μμΈμ μ°Ύμ κ² κ°μ΅λλ€. λ²κ·Έ λ μλμ§λ§ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λμ μλͺ»λ ꡬνμ λλ€. facepalm μ΄κ²μ λ΄κ° μλ κ°μ§κ³ μλ κ²μ λλ€ :
λ¬Έμ :
μμ ν΄λΌμ΄μΈνΈ μΈ‘ JavaScriptλ ν΄λΌμ΄μΈνΈκ° λ€μ μ°κ²°λ λ console.log ()λ₯Ό μ¬λ¬ λ² νΈμΆνμ΅λλ€. μ΄κ²μ μμ λ΄μ©μ λ€μμΌλ‘ λ체 ν κ²μ λλ€.
ν΄κ²°μ± :
μ΄μ ν΄λΌμ΄μΈνΈκ° μλ²μ λ€μ μ°κ²°ν λ μ¬λ¬ λ©μμ§κ° μλ€λ‘ μ μ‘λμ§ μμ΅λλ€. λ€λ₯Έ μ¬λμ΄ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λλ₯Ό λ³κ²½νλ©΄ λ¬Έμ κ° ν΄κ²°λλμ§ νμΈν μ μμ΅λκΉ?