ç§ã¯socket.ioã¢ããªã±ãŒã·ã§ã³ãšä»ã®èª°ãã®äž¡æ¹ã§ããã«æ°ã¥ããŸããã åæ¥ç¶ãçºçãããšãã¯ã©ã€ã¢ã³ãå ã®è€æ°ã®ãœã±ãããéãããã®ãäžè¬çã§ãããããã¯æ±ºããŠçºçããªãã¯ãã§ãã
ããã¯ãåæ/åæ¥ç¶ãããšãã«èªåã®ãã¹ãã¢ããªã±ãŒã·ã§ã³ããååŸãããã°ã§ãã
**åæ* *é
延1000åã®åæ¥ç¶è©Šè¡ïŒ1
**é
延2000åã®åæ¥ç¶è©Šè¡ïŒ2* * xhr-pollingã§æ¥ç¶ãã
** xhrããŒãªã³ã°ã§æ¥ç¶ãã* *ãã©ã³ã¹ããŒãã¿ã€ãxhr-pollingã§åæ¥ç¶è©Šè¡ïŒ2
**æ¥ç¶æžã¿**æ¥ç¶æžã¿
ãããçºçãããšãæ¥ç¶ãããŠãããœã±ããããšã«1ã€ãã€ãéè€ããã¡ãã»ãŒãžãéä¿¡ãããŸãã Firebugã«ãã£ãŠãå®éã«ã¯ãã¯ã©ã€ã¢ã³ããã2ã€ã®ãœã±ãããæ¥ç¶ãããŠããããšã確èªãããŠããŸãã ç§ã®æšæž¬ã§ã¯ãããã¯ã¯ã©ã€ã¢ã³ãã³ãŒãã«ãããããããæåã®åæ¥ç¶ã®è©Šè¡ãéããŠããŸããã
ãã¡ãããæ¬åœã®åé¡ã¯ããããããªãåæããã£ãã®ããšããããšãããããŸããã
æè¡çã«ã¯ãã¯ã©ã€ã¢ã³ãããµãŒããŒããåæããããããåæãçºçããŸãã ãããŠãåæ¥ç¶ã€ãã³ããå床çºçãããŸã§åæãããŸãã
ããããæ®ãã¯ãã°ã§ãã
ãããç§ã®ã¢ããªã±ãŒã·ã§ã³ã®ãã°ã®çç±ã§ããããšæããŸã-
ãµãŒããŒåŽã§ã¯ãmongodbã«èª¿æŽå¯èœãªã«ãŒãœã«ãäœæããŠãæ°ããæ¿å ¥ããããã³ã«èµ·åããŸãã ãã®ã¡ãã»ãŒãžã¯ãio.sockets.emitïŒïŒãä»ããŠæ¥ç¶ãããŠãããã¹ãŠã®äººã«éä¿¡ãããŸãã
ããããã€ãã³ãããšã«1ã€ã®ã¡ãã»ãŒãžã ããåä¿¡ãã代ããã«ãã¯ã©ã€ã¢ã³ãåŽã§è€æ°ã®ç¹°ãè¿ãã¡ãã»ãŒãžãåãåããŸãã
ç§ã¯éåžžã«ä¿¡é Œæ§ã®äœãã€ã³ã¿ãŒãããæ¥ç¶ã䜿çšããŠããã®ã§ããã®ãã°ãç§ã®ã³ãŒãã«ã圱é¿ãåãŒããŠãããšæããŸãã
çããã¯expressjsã䜿çšããŠããŸãããïŒ Expressã§ãã®åé¡ãçºçããããã䜿çšããã«æžãçŽãããšãããæ£åžžã«æ©èœããŸããã
Expressã¯ãã®@mfkpãšã¯ãŸã£ããé¢ä¿ããªããäœãå¥åŠãªããšãããŠããã«éããããŸããã
@visionmediaã«åæã
ãããåãã£ãã æ°ã«ããªãã§ãç¶ããŠãã ãã;-)
ããã«+1ã socket.ioãè€æ°ã®æ¥ç¶ãéããã£ããã¢ããªã®æç¶çãªåé¡ã ãã®åŸãã¯ã©ã€ã¢ã³ãã¯ãã¹ãŠã®æŸåºã®è€è£œãåãåããŸãã
+1ã Websocketãšã¯ããŒã ã ã©ãããããã¯ã¹ãªãŒãç¶æ ã«ãªããŸã->ãŠã§ã€ã¯ã¢ããåŸã«ã¢ããªãåæ¥ç¶ããŸã->ããã«ã€ãã³ãã ãªã¢ãŒããµãŒããŒã«æ¥ç¶ããŠããå Žåã«ã®ã¿çºçããŸãã ãããããŒã«ã«ã§åçŸããããšã¯ã§ããŸãããåæ¥ç¶/ãããã¯ãŒã¯é 延ã®åé¡ã§ããå¿ èŠããããŸãã
ãã®åŸãè€æ°ã®æ¥ç¶ãåãé€ãããã®åé¿çã¯ãããŸããïŒããšãã°ãã¯ã©ã€ã¢ã³ãåŽããã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åã®æ¥ç¶ãåä¿¡ããããããã«å¯ŸããŠãæ¥ç¶ãã€ãã³ããçºè¡ããŸãã ã¯ã©ã€ã¢ã³ãã¯ã誀ã£ãŠéå§ãããæ¥ç¶ãéããããšã¯ãããŸããã
ããããšãã ç§ã¯æ¬åœã«ãã®ãã°ãåªå ãããã¹ãã ãšæããŸãã ããããããªãå€ãã®å¶å©äŒæ¥ã¯ãsocket.ioãã¬ãŒã ã¯ãŒã¯ã«å¯ŸããŠéçºããããã«äººã ãéãããšããŸãã 確ãã«ãsocket.ioã¯ç¡æãªã®ã§ããããããã®å¶å©äŒæ¥ã¯åçšè£œåãæ€èšãå§ããå¿ èŠããããŸãã ããããç¹°ãè¿ãã«ãªããŸãããããã¯éåžžã«é«ãåªå 床ãšããŠæ¬åœã«åªå ããå¿ èŠããããšæããŸãã ãã®ãã°ã¯0.7.0以éã«ååšããç°¡åã«åçŸã§ããŸãã
@ davidfooks ã@ theyakã ç§ã¯ãã£ãšåã«ãã®åé¡ãä¿®æ£ããŸããããããŠããã¯å€§éšãããã«åäœããŸãã
ä¿®æ£ããã«ã¯ã次ã®ããšãè¡ãå¿ èŠããããŸãã
AJAXãã³ãã·ã§ã€ã¯ãç¡å¹ã«ããã«ã¯ã©ãããã°ããã§ããïŒ ãŸã ãã¹ãŠã®æ¥ç¶ã¿ã€ãã䜿çšã§ãããšæããŸãããããã¯ãã³ãã·ã§ã€ã¯ã«ã®ã¿åœ±é¿ããŸããïŒ
+1ãããä¿®æ£ããŠãã ãã:)
åæ¥ç¶ã®åé¡ã§åãè€æ°æ¥ç¶ããããŸããã ããã¯æ·±å»ãªåé¡ã ãšæããŸã...
åå ã¯ãSocket.connectã¡ãœãããåŒã³åºããããããã³ãã·ã§ã€ã¯ãå®äºããåŸã«ã®ã¿æ¥ç¶ãã©ã°ãtrueã«èšå®ãããããã§ãããã³ãã·ã§ã€ã¯ããã»ã¹äžã«matbeReconnectã¿ã€ããŒïŒåæ¥ç¶ãåŠçããã¿ã€ããŒïŒã®1ã€ããŠã§ã€ã¯ã¢ããããå ŽåãSocketãåŒã³åºããŸããå床æ¥ç¶ãããšãè€æ°ã®åæ¥ç¶ãçºçããŸãã
Socket.connectã¡ãœããã®å
é ã§self.reconnectingãåŒã³åºãããšã§ããã®åé¡ã解決ããŸããã
ããããäœæããŸããïŒ https ïŒ
ãããããŒãžããå¯èœæ§ã¯ãããŸããïŒ
ãã®ãã°ã¯ç§ã®ã¢ããªã«ãæªããã°ãäœã£ãŠããŸãã
ãã®ãã°ã¯ãŸã ååšããŸãã äž¡æ¹ã®ããããè©ŠããŸããã 倱æã
+1 xhr-pollingã䜿çšãããšããã®åé¡ãé »ç¹ã«çºçããŸãããŸã ããããè©ŠããŠããŸããã
+1ãç§ãéè€ããåæ¥ç¶ã§ãã®åé¡ãæ±ããŠããŸãã
Node.jsãåèµ·åããããã³ã«ïŒã€ãŸããã¹ãŒããŒãã€ã¶ãŒãä»ããŠå®è¡ãããŠããå ŽåïŒãã¯ã©ã€ã¢ã³ããæåã«æ¥ç¶ãããã€ã³ãããNode.jsãåèµ·åãããåæ°ã®Xåã®ã¯ã©ã€ã¢ã³ããåæ¥ç¶ããŸãã ãã®ãã°ã«ãããã¯ã©ã€ã¢ã³ãåŽããã®åæ¥ç¶ããšã«1åã€ãã³ããçºè¡ãããŸããããã¯ãéè€ã®åé¡ã ãã§ã¯ãããŸããã
ã¯ã©ã€ã¢ã³ãåŽã§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=en&fromgroups#!topic/socket_io/X9FRMjCkPco
@xdanx ãããããè¿ä¿¡ããããšãã
ã¯ããããã¯ç§ã«ãšã£ãŠãããŸãããããã§ãïŒsocket.onïŒ 'message'ïŒã³ãŒãã 'connect'ã€ãã³ãã³ãŒããšã¯å¥ã«é 眮ãã
ãããããæ¥ç¶ãã¯ã©ãã§ããïŒ
ãããŠãã³ãŒã«ããã¯ã®ããœã±ããããªããžã§ã¯ãã¯ã©ãã§ããïŒ
/ editãããŒãã€ã³ãããªãã»ã©ããæ¥ç¶ãã¯ã¯ã©ã€ã¢ã³ãäžã«ãããŸãã ãããããŠããªãã£ããšããç§ã¯ãŸã åæ¥ç¶ã¹ãã ã®åé¡ãæ±ããŠããŸããã ãããããã¯0.9.6ã§ãã
ç§ãåãåé¡ãæ±ããŠããããã§ã...ã¡ãã»ãŒãžã³ãŒããå¥ã ã®ãããã¯ã«ç§»åãããšããäžèšã®ä¿®æ£ãè©Šã¿ãŸããããç§ã¯ãããäžç·ã«æã£ãŠããªãã£ãããšã«æ°ã¥ããŸããã
0.9.8ã§ããã«é¢ããä»ã®åé¿çã«é¢ãããã¥ãŒã¹ã¯ãããŸããïŒ
ç§ã¯åãåé¡ãæ±ããŠããŸãã 0.9.10ãã€ã³ã¹ããŒã«ããŸããã ãããä¿®æ£ããæ¹æ³ã¯ãããŸããïŒ :(
ãšããã§ãããã¯1幎以äžã§ããŸã ä¿®æ£ã¯ãããŸãã.. :(
ç·šéã
jsonp-pollingã®ã¿ã䜿çšããŠããå Žåãåé¡ã¯è§£æ¶ãããããã§ãã
io.setïŒ 'transports'ã['jsonp-polling']ïŒ;
ç§ã¯åãåé¡ãæ±ããŠããŸãã
ãœã±ããã [email protected]
ããŒãv0.8.8
@semprom jsonp-pollingã䜿çšãããšãWebSocketæ¥ç¶ã®ã¿ã«é¢é£ããå¯èœæ§ãããããä¿®æ£ããããšæããŸãã
æ®å¿µãªãããç§ã®å®è£ å šäœã¯ãã£ãŒãããã¯ãå¯èœãªéãè¿ éã§ããããšã«äŸåããŠãããããããŒãªã³ã°ã§ã¯ãªãWebSocketãæé©ã§ãããŸããæ¥ç¶ããŠããã¯ã©ã€ã¢ã³ããå¶åŸ¡ããŠããããããã®åé¡ä»¥å€ã«äœãã«ç§»è¡ããçç±ã¯ãããŸãããããããªããšã
åæ¥ç¶ããåãã¯ã©ã€ã¢ã³ãããã®è€æ°ã®æ¥ç¶ã¯ãåãsocket.id
æã£ãŠããããšã«æ³šæããŠãã ããã ãããã£ãŠããœã±ããIDã®ç¬èªã®ãªã¹ããç¶æããéè€ãç¡èŠããŠãã®åé¡ãåé¿ã§ããŸãã
@KasperTidemannããããšãã ããã¯ãã®åé¡ã解決ããŸããã
@esanaiåé¡ãããŸããã
ããã«ã¡ã¯ãç§ã¯åãåé¡ãæ±ããŠãããæ¥ç¶ãåæ¥ç¶ããããã³ã«ãæ°ããã¯ã©ã€ã¢ã³ããœã±ããIDãäœæãããããšã«æ°ã¥ããŸããã 解決çã¯ãio.setïŒ 'transports'ã['jsonp-polling']ïŒ;ã䜿çšããããšã§ãã ãŸãã¯KasperTidemannã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŸããïŒ
@KasperTidemannç§ã®è¯ããç·ãããã¯ãŸãã«ç§ã®åé¡ãžã®çãã§ãïŒ ãã®ã³ããããåç §ããŠãã ããïŒ https ïŒ
ãã®åçŽãªã¯ã©ã€ã¢ã³ããšãµãŒããŒã®ã³ãŒãã䜿çšããŠãæ¥ç¶ãšã©ãŒã«ç¶ãäºéæ¥ç¶ã€ãã³ããåäžã®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ãšãããŒãžã§ã³1.4.6ã®Socket.IOãæèŒããSafari foriOSã䜿çšããŠããªãäžè²«ããŠåçŸã§ããŸãã
ç§ã¯ãããã¢ãã€ã«ã§ããåçŸã§ãããsocket.ioãžã®ãªã¯ãšã¹ãã§ããŒãžããã³ã°ããŸãã
åçŽãª.onïŒ 'connect'ãfunctionïŒsocketïŒ{console.logïŒ 'Connected'ïŒ;}ïŒ;ããããŸãã ãšã©ãŒãçºçãããšãConnectedã2åãã°ã«èšé²ããããããè€æ°ã®ãœã±ããæ¥ç¶ãåæã«éãããšããŠãããšæãããŸãã
誰ããããã®åé¿çãç¥ã£ãŠããŸããïŒ
ãã®åé¡ã解決ãããã®ã¯ãªãã§ããïŒ
äžèšã®2014幎4æ14æ¥ã®ç§ã®ãµã³ãã«ã³ãŒãã§ã¯ãäºéæ¥ç¶ã€ãã³ããçæãããªããªããŸããã '/ chat'çšã®æ¥ç¶ã€ãã³ããšãœã±ããèªäœçšã®æ¥ç¶ã€ãã³ãããããŸãã ããã¯åççãªããã§ãã
ã¯ã©ã€ã¢ã³ãã§ããšã©ãŒã¯çºçããªããªããŸããã
ããã¯ãsocket.io1.4.8ããã³ããŒââã6.3.0ã®å Žåã§ãã
ãã®ãã°ã¯ç§ã«åœ±é¿ãäžããŠããŸãã
ã©ããããsocket_handlersãã«ãŒãã䜿çšããŠé 眮ãããŠããå Žåããããã¯è€æ°ååŒã³åºãããŸãã app.jså ã§ãœã±ããæ¥ç¶ã䜿çšãããœã±ããæ¥ç¶å ã§ãã³ãã©ãŒãèŠæ±ãããã©ã¡ãŒã¿ãŒãšããŠãœã±ãããæž¡ããŸãã äžéšã®ããããã£ã¯ããœã±ããã€ã³ã¹ã¿ã³ã¹ãšäžç·ã«åºè·ãããªãå Žåãããããšã«æ³šæããŠãã ãã
@leemlwandoå¿ èŠã«å¿ããŠãæ°ããåé¡ãéããŠãã ããã
ç§ãããã®ãšåãåé¡ããã¯ã©ã€ã¢ã³ãã§æåã®åæ¥ç¶é¢æ°ãäœæããio.destroyïŒïŒãåŒã³åºãããšã§ããã åæ¥ç¶æ©èœå ã§ãããã«ããåé¡ãä¿®æ£ãããŸããã
ã©ããããããšã
ãŸã ãã®ãã°ãçºçããŠããŸãããæŽæ°ã¯ãããŸããïŒ
ããã§ã®å¯äžã®æ¬åœã®ãã°ã¯ã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
ïŒã¯ã 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.ioWebãµã€ãã®äŸã®@ DrLex0ã¯ã次ã®ããšãå®è¡ããããšã瀺ããŠããŸãã
io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
æãåèã«ãªãã³ã¡ã³ã
ãããããå°ã調ã¹ãŠã¿ããšãåé¡ã®åå ãããã£ãããã§ãã ããã¯ãã°ã§facepalmããã¯ç§ãæåã«æã£ãŠãããã®ã§ãïŒ
åé¡ïŒ
äžèšã®ã¯ã©ã€ã¢ã³ãåŽJavaScriptã«ãããã¯ã©ã€ã¢ã³ããåæ¥ç¶ãããšãã«console.logïŒïŒãè€æ°ååŒã³åºãããŸããã ããã¯ç§ãäžèšã眮ãæãããã®ã§ãïŒ
解決ïŒ
çŸåšãã¯ã©ã€ã¢ã³ãããµãŒããŒã«åæ¥ç¶ãããšãã«ãè€æ°ã®ã¡ãã»ãŒãžãéåä¿¡ãããŠããŸããã ä»ã®èª°ãããã¯ã©ã€ã¢ã³ãåŽã®ã³ãŒããå€æŽããããšã§åé¡ã解決ããããšã確èªã§ããŸããïŒ