ããã«ã¡ã¯ã
ç§ã¯socket.ioãåããŠäœ¿çšããsocket.ioã2ã€ã®æ¥ç¶ãç¶æããçç±ãçåã«æã£ãŠããŸãã
åæã«ïŒ
ããã¯å°ãã°ãããŠããŸãããïŒ
socket.io 0.9ã«2ã€ã®ãªãŒãã³ãã©ã³ã¹ããŒããåæã«ååšããç¶æ³ã«ééããå Žåãããã¯ãã°ã§ããããããåçŸããæ¹æ³ã«ã€ããŠã®è©³çŽ°ãããã ããã°å¹žãã§ãã
ãXHRããŒãªã³ã°ãã¯æ¥ç¶ã§ã¯ãªããè€æ°ã®æ¥ç¶ã䜿çšããå¯èœæ§ããããŸãã
ã¯ãããã ããããŒãªã³ã°ã¯ãã¹ãŠã®ãªã¯ãšã¹ãã§åãURLã§æ©èœããããã§ãã ç§ã¯ããã1ã€ããšãã¥ã¬ãŒãããå¿ èŠããããšæããŸãã
socket.io 0.9ã«2ã€ã®ãªãŒãã³ãã©ã³ã¹ããŒããåæã«ååšããç¶æ³ã«ééããå Žåãããã¯ãã°ã§ããããããåçŸããæ¹æ³ã«ã€ããŠã®è©³çŽ°ãããã ããã°å¹žãã§ãã
åãæå³ãã©ããã¯ããããŸããããChromiumã¯éããŠããWebSocketæ¥ç¶ã衚瀺ããããã«ãsocket.ioã«ããŒãªã³ã°èŠæ±ãéä¿¡ããŠããŸãã
ãã°ãããŠããããšã¯ã䜿çšå¯èœãªWebSocketæ¥ç¶ãšããŒãªã³ã°ã®å©ç¹ãç解ã§ããªãããšãæå³ããŸãã
WebSocketæ¥ç¶èªäœã§ååã§ãããxhrããŒãªã³ã°ã¯ãã©ãŒã«ããã¯ãšããŠã®ã¿äœ¿çšãããã¹ãã§ã¯ãããŸãããïŒ
ç§ãäœããéããå Žåã¯ç§ãä¿®æ£ããŠãã ãã
@bodokaiserã¯ã
ãã³ãã·ã§ã€ã¯ã¯éåžžã®HTTPã§ããããšã«æ³šæããŠãã ãã
Chromeã¯ãWebSocketæ¥ç¶ãä¿çäžã§ããããšã瀺ããŠããŸãã ãšã©ãŒã¡ãã»ãŒãžã¯ãããŸããã wsãæ©èœãããšæããŸãã ããã§ããsocket.ioããã©ãŒã«ããã¯ããŠãããã©ããã確èªããã«ã¯ã©ãããã°ããã§ããïŒ
ãããããã¯ééããªãæ¡æã§ã¯ãªãã ChromeãšããŒãã³ã³ãœãŒã«ã§ã2000ããªç§ããšã«getãªã¯ãšã¹ããã©ã®ããã«ç¹°ãè¿ãããŠãããã確èªããŸãã
node.jsã®ãã°ã¯åœ¹ã«ç«ã¡ãŸããïŒ
ãããã
wsæ¥ç¶ã§äº€æããããã¬ãŒã ã調ã¹ãŸãïŒChromeã ãããããæã£ãŠãããšæããŸãïŒã ããŒã¿ã衚瀺ãããªãå Žåã¯ãæ©èœããŸããã§ããã
ãããåŸéããŠããããã ïŒ
debug - client authorized
info - handshake authorized yUEmr7drZfmWzWHdEZcp
GET /socket.io/1/?t=1344799805756 200 3ms
debug - setting request GET /socket.io/1/xhr-polling/yUEmr7drZfmWzWHdEZcp?t=1344799815866
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client yUEmr7drZfmWzWHdEZcp
GET /socket.io/1/xhr-polling/yUEmr7drZfmWzWHdEZcp?t=1344799815866 200 1ms
debug - xhr-polling received data packet 5:::{"name":"hello","args":["world"]}
POST /socket.io/1/xhr-polling/yUEmr7drZfmWzWHdEZcp?t=1344799815871 200 1ms
debug - setting request GET /socket.io/1/xhr-polling/yUEmr7drZfmWzWHdEZcp?t=1344799815872
debug - setting poll timeout
debug - discarding transport
debug - cleared close timeout for client yUEmr7drZfmWzWHdEZcp
debug - clearing poll timeout
debug - xhr-polling writing 8::
debug - set close timeout for client T9eCOR7gCe3pLNtiEZco
debug - xhr-polling closed due to exceeded duration
GET /socket.io/1/xhr-polling/T9eCOR7gCe3pLNtiEZco?t=1344799800945 200 20002ms
debug - clearing poll timeout
debug - xhr-polling writing 8::
debug - set close timeout for client yUEmr7drZfmWzWHdEZcp
debug - xhr-polling closed due to exceeded duration
@guilleãªããã©ãŒã«ããã¯ããŠããã®ãæããŠ
ã©ã®ãã©ãŠã¶ã䜿çšããŠããŸããïŒ
MacOSXçšã®Chroms21
Chrome 21 / Windows 21.0.1180.79 mã§ãåãåé¡ãçºçããŠããŸã-æ¥ç¶ãããªãåæWebSocketæ¥ç¶ã䜿çšããJSONPããŒãªã³ã°æ¥ç¶ïŒæåããŠããããã§ãïŒããããŸã-åžžã«ãä¿çäžãã®ç¶æ ã§ãã Macäžã®åãããŒãžã§ã³ã®Chromeã¯åé¡ãªãããã§ãã
ããã¯ãã¡ã€ã¢ãŠã©ãŒã«ããŠã€ã«ã¹å¯Ÿçã«é¢é£ããŠããããã«ã¯èŠããŸããããã¹ãŠã®ãã¹ãã¯websocketstest.orgãšwebsocket.org/echo.htmlã«åæ ŒããŠããŸãã
ç§ã¯socket.io0.9ã䜿çšããŠããŸãããææ°ããŒãžã§ã³ã«ãååšããŠããããã§ãã
@guilleãã®åé¡ãéåžžã«ç°¡åã«åçŸã§ããããã§ãã socket.ioã®WebSocketãã©ã³ã¹ããŒãã䜿çšãããµã€ãã«ã¢ã¯ã»ã¹ããŸããã
å°ãªããšãWindowsäžã®Chrome21ã§ã¯ãWSæ¥ç¶ã®ã¹ããŒã¿ã¹ã¯åžžã«ãä¿çäžãã§ããããšã«æ³šæããŠãã ããã
socket.ioãã¹ã¿ãŒã§è©ŠããŠã¿ãŸãããïŒ
ãã¹ã¿ãŒãè©Šãããšãããåãåé¡ãçºçããŸããã ãã®åé¡ãïŒ998ã®éè€ã§ããå¯èœæ§ããããšèããŠãã ããã
ãŸãããã®äŸ¡å€ã«ã€ããŠã¯ãïŒ998ã§èª¬æãããŠããåé¿çããæ¥ç¶ã確ç«ããããã«æ©èœããŸãããã€ãŸããWebSocketãç¡å¹ã«ããxhrãšjsonpã®ããŒãªã³ã°ã®ã¿ã䜿çšããŸãã
ããã¯å®éã«ã¯ã¯ãã ã®ãã°ã§ããïŒ
www.websocket.org/echo.htmlã§ãã¹ããè¡ããšã
é¢çœãããšã«ãåãWebãµã€ãã§ãSecureWebSocketïŒTLSïŒãã䜿çšãããšãWebSocketãæ©èœããŸãã
ChromeãšFirefoxã®äž¡æ¹ã§ãŸã£ããåãåäœ..éåžžã«å¥åŠãª..
ãµãŒãïŒ
socket.on('loginout',function(){
socket.emit('loginout',{uname:socket.name});
});
socket.onïŒ 'login'ãfunctionïŒdataïŒ{
socket.emitïŒ 'l_msg'ã{unameïŒdata.unameãscoreïŒdata.scoreãtypeïŒtrue}ïŒ;
}ïŒ;
å°å·ïŒ
æ
å ±ïŒãã³ãã·ã§ã€ã¯æ¿èªæžã¿11012331592122282453
ãããã°ïŒãªã¯ãšã¹ãã®èšå®GET /socket.io/1/xhr-polling/11012331592122282453?t=1353485202761
ãããã°ïŒããŒãªã³ã°ã¿ã€ã ã¢ãŠãã®èšå®
ãããã°ïŒã¯ã©ã€ã¢ã³ããæ¿èªãããŸãã
ãããã°ïŒããŒãªã³ã°ã¿ã€ã ã¢ãŠãã®ã¯ãªã¢
ãããã°ïŒxhr-ããŒãªã³ã°æžã蟌ã¿1 ïŒïŒ
ãããã°ïŒã¯ã©ã€ã¢ã³ã11012331592122282453ã®ã¯ããŒãºã¿ã€ã ã¢ãŠããèšå®ããŸã
ãããã°ïŒxhr-åä¿¡ããŒã¿ãã±ããã®ããŒãªã³ã° 20 5::: {"name"ïŒ "count"} 22 5::: {"name"ïŒ "history"} 23 5::: {"name "ïŒ" userList "}
ãããã°ïŒãªã¯ãšã¹ãã®èšå®GET /socket.io/1/xhr-polling/11012331592122282453?t=1353485202792
ãããã°ïŒããŒãªã³ã°ã¿ã€ã ã¢ãŠãã®èšå®
ãããã°ïŒãã©ã³ã¹ããŒããç Žæ£ãã
ãããã°ïŒã¯ã©ã€ã¢ã³ã11012331592122282453ã®ã¯ããŒãºã¿ã€ã ã¢ãŠããã¯ãªã¢ããŸãã
ãããã°ïŒããŒãªã³ã°ã¿ã€ã ã¢ãŠãã®ã¯ãªã¢
ãããã°ïŒxhr-ããŒãªã³ã°æžã蟌ã¿8 ïŒïŒ
ãããã°ïŒã¯ã©ã€ã¢ã³ãã®ã¯ããŒãºã¿ã€ã ã¢ãŠããèšå®ããŸã1896586469607627233
ãããã°ïŒæéãè¶
ãããããxhr-pollingãéããããŸãã
ãããã°ïŒxhr-åä¿¡ããŒã¿ãã±ããã®ããŒãªã³ã°5 ::: {"name"ïŒ "login"ã "args"ïŒ[{"uname"ïŒ "gjjn"ã "pwd"ïŒ "3f01728152a0225ff9806c401ffdbe77"}]}
ãããã°ïŒããŒãªã³ã°ã¿ã€ã ã¢ãŠãã®ã¯ãªã¢
debugïŒxhr-pollingwriting 5 ::: {"name"ïŒ "l_msg"ã "args"ïŒ[{"uname"ïŒ "gjjn"ã "type"ïŒtrueã "head"ïŒ " httpïŒ//42.121ã 14.234 / undefined "}]}
ãããã°ïŒã¯ã©ã€ã¢ã³ã11012331592122282453ã®ã¯ããŒãºã¿ã€ã ã¢ãŠããèšå®ããŸã
ãããã°ïŒxhr-åä¿¡ããããŒã¿ãã±ããã®ããŒãªã³ã°5 ::: {"name"ïŒ "loginout"}
ãããã°ïŒwebsocketæžã蟌ã¿5 ::: {"name"ïŒ "l_msg"ã "args"ïŒ[{"uname"ïŒ "gregergre"ã "type"ïŒtrueã "head"ïŒ " http://42.121.14.234/æªå®çŸ©ã®"}]}
ãããã°ïŒã¯ã©ã€ã¢ã³ã5207531891749391108ã®ããŒãããŒããçºè¡ããŸã
ãããã°ïŒwebsocketæžã蟌ã¿2 ïŒïŒ
ãããã°ïŒã¯ã©ã€ã¢ã³ã5207531891749391108ã®ããŒãããŒãã¿ã€ã ã¢ãŠããèšå®ããŸã
ãããã°ïŒããŒãããŒããã±ãããååŸããŸãã
ãããã°ïŒã¯ã©ã€ã¢ã³ã5207531891749391108ã®ããŒãããŒãã¿ã€ã ã¢ãŠããã¯ãªã¢ããŸãã
ãããã°ïŒã¯ã©ã€ã¢ã³ã5207531891749391108ã®ããŒãããŒãééãèšå®ããŸã
ãããã°ïŒwebsocketæžã蟌ã¿5 ::: {"name"ïŒ "loginout"ã "args"ïŒ[{}]}
xhr-pollingã¯ããŒã¿ãã±ãã5 ::: {"name"ïŒ "loginout"}ãåä¿¡ããŸããã
ããããçµæã§ã¯ãããŸããã
ãã£ã¡ãäžç·ã åãã³ãŒãã䜿çšããŸããããChrome MacOSã§ã¯æ©èœããŸãããChromeWindowsã§ã¯æ©èœããŸãã
è€è£œããæ¹æ³-httpsïŒ//gist.github.com/jonnsl/5021596
+1ããã®åé¡ãä¿®æ£ããŠãã ããã @ LearnBoost
ç§ã¯ãããèŠãŠããŸãããç§ã®åŽã§ã¯ãWebsocketæ¥ç¶ãšSOCKET.ioãµãŒããŒã«éä¿¡ãããç¹°ãè¿ãã®XHRãªã¯ãšã¹ããšããŠè¡šç€ºãããŸã
WebSocketæ¥ç¶ãæåããããã§ãããXHRãªã¯ãšã¹ãã衚瀺ãããŸã
Request URL:ws://localhost:5000/socket.io/?EIO=2&transport=websocket&sid=XcMblHoZ0x97QRn_AAAE
Request Method:GET
Status Code:101 Switching Protocols
Request Headers CAUTION: Provisional headers are shown.
Cache-Control:no-cache
Connection:Upgrade
Cookie:io=XcMblHoZ0x97QRn_AAAE
Host:localhost:5000
Origin:http://localhost:3000
Pragma:no-cache
Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits, x-webkit-deflate-frame
Sec-WebSocket-Key:EZixwYoUHpFFpgrEOqiS+w==
Sec-WebSocket-Version:13
Upgrade:websocket
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Query String Parametersview sourceview URL encoded
EIO:2
transport:websocket
sid:XcMblHoZ0x97QRn_AAAE
Response Headers
Connection:Upgrade
Sec-WebSocket-Accept:WHsiBZoW9stmULt+YX8wmNK1wx8=
Upgrade:websocket
WebSocketãã¬ãŒã ã¯æ¬¡ã®ããã«ãªããŸã
https://www.dropbox.com/s/v6szg9hka53erbc/Screenshot%202014-07-09%2011.12.33.png
ãããŠãé·ãããŒãªã³ã°èŠæ±
https://www.dropbox.com/s/pf7d56tp85864bg/Screenshot%202014-07-09%2011.15.47.png
Google Chrome35.0.1916.153ã§å®è¡ããŠããŸã
ãœã±ããçºè¡ããŒãžã§ã³ã¯[email protected]
åãåé¡ããããŸãã æŽæ°ã¯ãããŸããïŒ SocketIO1.0.6ã®äœ¿çš
æåã®ãªã¯ãšã¹ãã¯åžžã«XHRã§ããã次ã«WebSocketã«_ã¢ããã°ã¬ãŒã_ããŸãïŒå¯èœãªå ŽåïŒã åŸç¶ã®ããŒãªã³ã°ã¯äžæ¢ãããŸãïŒå Žåã«ãã£ãŠã¯è¿œå ã®ããŒãªã³ã°ãµã€ã¯ã«ãçºçããå¯èœæ§ããããŸããã1ãè¶ ããããšã¯ãããŸããïŒ
@guilleç§ããã§ãã¯ãããã®ã«ã€ããŠã¯ãWebsocketæ¥ç¶ãæ£åžžã«ç¢ºç«ãããå Žåã§ãXHRããŒãªã³ã°ãç¹°ãè¿ãããã®ãããããŸã
ããã«ã¡ã¯ã
ãã®åé¡ã解決ããããã®è§£æ±ºçã¯äœã§ããïŒ
@rohittailor ïŒç§ã¯ãããã¯ã©ã€ã¢ã³ãã§ãã¹ãããŠããŸãïŒ
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect({transports: ['websocket']});
</script>
ãããŠãããŸã§ã®ãšãããšãŠãè¯ãã XHRæ¥ç¶ãå®å šã«åé¿ããŠããŸãã
ããã§ç§ã®åé¡ã解決ããŸãããwebsocketã¯æ£åžžã«æ©èœããŠããŸããããããŒãã£ãªXHRããŒãªã³ã°ããããŸããã ããããšã@gonzalodiaz
WSã«æ£åžžã«ã¢ããã°ã¬ãŒããããã·ããªãªãæ¬åœã«èŠããã®ã§ãããXHRããŒãªã³ã°ãµã€ã¯ã«ã¯WebInspectorã§ç¡æéã«ç¶è¡ãããŸãã
ïŒãã¢ããããªãã¢ãã¡ãŒã·ã§ã³GIFãäœã§ãæ©èœããŸãïŒ
ææ¥ãMSAzureã¯ã©ãŠãã§ãã¹ããããç§ã®Webãµã€ããžã®ãã¢ã¢ã¯ã»ã¹ãæäŸã§ããŸãã ãã¹ãURLãšsocket.ioã®ãã¹ãæ¹æ³ã®è©³çŽ°ãæããŠãã ããã
@guilleããã¯ã©ãã§ãã
WebSocketãã¬ãŒã ã¯æ¬¡ã®ããã«ãªããŸã
https://www.dropbox.com/s/v6szg9hka53erbc/Screenshot%202014-07-09%2011.12.33.png
ãããŠãé·ãããŒãªã³ã°èŠæ±
https://www.dropbox.com/s/pf7d56tp85864bg/Screenshot%202014-07-09%2011.15.47.png
ãããã¯ç¡æéã«é²ã¿ç¶ããŸããïŒ ã«éè€ãããã¬ãŒã ããããŸãã
åå¿ïŒ 察å¿ãããµãŒããŒãã°ãDEBUG = *ãš
ãã®ç¶æ³ãçºçãããšãã«localStorage.debug='*'
ãã©ãŠã¶ãã°ïŒ
â
ã®ã¬ã«ã¢ã»ããŒãâ https://twitter.com/rauchg
22:59ã§ç«ã2014幎10æ14æ¥ã«ã¯ãVirenãã®[email protected]
æžããŸããïŒ
@guillehttps ïŒ//github.com/guilleããã¯ã©ãã§ãã
WebSocketãã¬ãŒã ã¯æ¬¡ã®ããã«ãªããŸã
https://www.dropbox.com/s/v6szg9hka53erbc/Screenshot%202014-07-09%2011.12.33.png
ãããŠãé·ãããŒãªã³ã°èŠæ±
https://www.dropbox.com/s/pf7d56tp85864bg/Screenshot%202014-07-09%2011.15.47.png
â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/Automattic/socket.io/issues/991#issuecomment -59161273
ã
@guille xhrå¿çãç¡æéã«ç¹°ãè¿ãããã®ã確èªããŸããéè€ãããã¬ãŒã ã«ã€ããŠã¯ããããããŸãããå¿ èŠãªãã®ããã¹ãŠæäŸã§ãããã©ããã確èªãããŠãã ããã
ç§ãã©ãã»ã©åœ¹ç«ã€ãã¯ããããŸããããå®å šãªå Žåã«ã®ã¿Webãœã±ããã«æ¥ç¶ã§ããããšã«æ°ã¥ããŠããŸãã å®å šã§ãªãWebSocketæ¥ç¶ãèš±å¯ããããã«ããããŒïŒCORSã®ãããªïŒãå¿ èŠãšããæè¿ã®ã»ãã¥ãªãã£å€æŽãããã€ããããŸããïŒ
WebSocketã¯1ãæåã«æ©èœããŠããŸããããçŸåšã¯wssïŒ//æ¥ç¶ã§ã®ã¿æ©èœããŸãã
Chrome 38.0.2125.104-Windows 8.1.1
ç·šéïŒãããã®çµæã¯ãå®éã«ã¯http://www.websocket.org/echo.htmlã®åé¡ã§ããå¯èœæ§ããã
ç§ã¯ä»ã®å Žæã§ãã¹ãããããšãã§ããŸããã§ãã
WSæ¥ç¶ã®æåã¯ãå®éã«ã¯ãããã¯ãŒã¯/ãµãŒããŒã®æ©èœã«äŸåããŸãã SSLã¯ãããŒã¿ã埩å·åãããåã«äœãç Žå£ã§ããªãããšãä¿èšŒããŸãïŒãã ããåŸç¶ã®ãããã·/ããŒããã©ã³ãµãŒã¯ãããç Žå£ã§ããŸãïŒã
ãããå®éã«ã¯ã³ãŒãã®ãã°ã§ããããšã«æ°ã¥ããŸãããWSæ¥ç¶ãããŒãªã³ã°ããããšãããªãã£ãã®ã§ãå€æŽãå ããŠããæ©èœããŸããã ç§ãèŠããŠãããªããç§ã¯ä»å€ä¿®æ£ããããœãŒã¹ãèŠãã§ãããã
ãããããããä»ã®ãã¹ãŠã®äººã®ããã«æ©èœããŠããå Žåãããã¯ç§ã®èšå®ã«åé¡ãããå¯èœæ§ããããŸããã&&ã||ã«å€æŽããã«WSãå©çšã§ããªããšèãããããæ¥ç¶ããããšããŸããã§ããä¿®æ£ããŸããã
ãã£ãšèãããïŒ
ããã§ãïŒå°ããªïŒåé¡ã§ãããã¯ã©ã€ã¢ã³ãã¯å¥ã®ãã©ã³ã¹ããŒããè©Šã代ããã«ãåžžã«ããŒãªã³ã°èŠæ±ãè¡ããŸãã æå®ããå¿ èŠããããŸã
{transports: ['websocket']}
ãããæ©èœãããã«ã¯ãã¯ã©ã€ã¢ã³ãã¯ãã¹ãŠã®ãã©ã³ã¹ããŒããè©ŠããŠãé©åãªãã©ã³ã¹ããŒããèŠã€ããå¿ èŠããããŸãããïŒ
ãã®åé¡ãã2012/13幎ã«ç¬èªã®ãçŽç²ãªãWebãœã±ããããã±ãŒãžã®éçºãå§ããçç±ã§ãã
ãã®åé¡ã¯è§£æ±ºãããŸãããïŒ ç§ã¯äŒŒããããªãã®ãèŠãŠããŸãããæ·±ãæãäžããåã«ãç°¡åãªæ€çŽ¢ããããã£ãã®ã§ã...ã³ã¡ã³ãïŒ
ãã®åé¡ã«ã€ããŠæåŸã«ã³ã¡ã³ãããŠãããã³ãŒããããªãå€æŽãããŸããã åããã°ã§ããå¯èœæ§ã¯äœãã§ãã åååé¡ãåŒãèµ·ããããšæãããè¡ãèŠã€ãããªãããã§ãã ãããä¿®æ£ããããšèšã£ãŠããããã§ã¯ãããŸããã
ç§ã®socket.ioã³ãŒãã¯çŸåšãã°engine.io-clientã«ãã£ãŠãããã¯ãããŠãããããs.ioãæ°ãæ䜿çšããŠããªããããããããŸã åé¡ã§ãããã©ããã¯ããããŸããã
@wssãæ©èœããŠããããšã«ã€ããŠã³ã¡ã³ããæçš¿ããããšã¯ãããŸããããç§ã®å Žåãwssã¯å®å šã«æ£ãããããŸããã§ããã ãããææããŠãããŠããããšãç§ã¯äžé±é以äžãã®åé¡ãæ¢ããŠããŸããã ã©ããããããç§ã®ãããã¯ãŒã¯äžã®wsæ¥ç¶ããããã¯ãããŠããŸããããwssã¯æ£åžžã«æ©èœããŠããŸããã
ãã®Webãµã€ãã¯çŽ æŽãããã§ãïŒ http ïŒ
ãœã±ããioã«åé¡ããããŸãããã©ããééã£ãŠããã®ãããããŸããã
äžã®ç»åã¯ããŒã«ã«ã§æ£åžžã«åäœããããšã瀺ããŠããŸãããäžã®ç»åã¯AWSç°å¢ã§è©Šè¡äžã«ãã£ããã£ããããã®ã§ãã
ãœã±ããioã«åé¡ããããŸãããã©ããééã£ãŠããã®ãããããŸããã
äžã®ç»åã¯ããŒã«ã«ã§æ£åžžã«åäœããããšã瀺ããŠããŸãããäžã®ç»åã¯AWSç°å¢ã§è©Šè¡äžã«ãã£ããã£ããããã®ã§ãã
åãåé¡ã«çŽé¢ããŠãã
æãåèã«ãªãã³ã¡ã³ã
@rohittailor ïŒç§ã¯ãããã¯ã©ã€ã¢ã³ãã§ãã¹ãããŠããŸãïŒ
ãããŠãããŸã§ã®ãšãããšãŠãè¯ãã XHRæ¥ç¶ãå®å šã«åé¿ããŠããŸãã