ÃֽŠ°Ô½Ã±Û(WEB)
2018.06.29 / 21:35

HTML5 À¥¼ÒÄÏ

aichatbot
Ãßõ ¼ö 169

1. HTML5 À¥¼ÒÄÏ

- ¼­¹öÃø¿¡¼­ÀÇ º¹ÀâÇÑ ÇÁ·Î±×·¡¹Ö ¾øÀÌ À¥À» ÅëÇؼ­ ÀϹÝÀûÀÎ TCP¼ÒÄÏ°ú °°ÀÌ ½Ç½Ã°£ ¿¬°áÁöÇâ ¾ç¹æÇâ ÀüÀÌÁß Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ±â¼ú

- ±âÁ¸ À¥ºê¶ó¿ìÁ®¿¡¼­ ¼­¹ö·Î µ¥ÀÌÅ͸¦ ¿äûÇÏ´Â ¹æ½Ä¿¡ ºñÇØ, ¼­¹ö¿¡¼­ ºê¶ó¿ìÀú·Î µ¥ÀÌÅÍ Àü¼ÛÀÌ °¡´É

- HTTP Åë½Å¿¡¼­, ¼­¹ö Åë½ÅÁß¿¡ ¹ß»ýÇÏ´Â ºÒÇÊ¿äÇÑ µ¥ÀÌÅÍÀÎ  ÆÄÀÏ 'Çì´õ' ºÎºÐÀ» ÃÖ´ë 1/1000 °¡·® ÁÙÀϼö ÀÖÀ½

-  À¥¼ÒÄÏ ±â¼ú ¾÷ü ī¡(Kaazing)¿¡¼­´Â 'ī¡ ÄÉÀÌÆ®¿þÀÌ HTML5 ¿¡µð¼Ç'  ·±Äª ¹ßÇ¥, º»°ÝÀûÀÎ À¥ ¼Ò°Ù ½Ã´ë¸¦ ¾Ë¸²


 

2. À¥ ¼ÒÄÏ°ú (AjaxÀÇ Åë½Å °´Ã¼ÀÎ) XMLHttpRequest ÀÇ ¼Óµµ ºñ±³

http://bloga.jp/ws/jq/wakachi/mecab/wakachi.html  (Å©·Ò or »çÆĸ®¿¡¼­ ½ÇÇà)

À¥ ¼ÒÄÏÀÌ ´ë·« 50¹è ÀÌ»ó ÁÁÀº ¼º´ÉÀ» ³ªÅ¸³¿



3. À¥ ¼ÒÄÏÀÌ ÇÊ¿äÇÑ °æ¿ì

Your web application has data that must flow bi-directional simultaneously.

- ½Ç½Ã°£ ¾ç¹æÇâ µ¥ÀÌÅÍ Åë½ÅÀÌ ÇÊ¿äÇÑ °æ¿ì

Your web application must scale to large numbers of concurrent users.

- ¸¹Àº ¼öÀÇ µ¿½Ã Á¢¼ÓÀÚ¸¦ ¼ö¿ëÇØ¾ß ÇÏ´Â °æ¿ì

Your web application must extend TCP-based protocols to the browser.

- ºê¶ó¿ìÀú¿¡¼­ TCP ±â¹ÝÀÇ Åë½ÅÀ¸·Î È®ÀåÇØ¾ß ÇÏ´Â °æ¿ì

Your web application developers need an API that is easy to use.

- °³¹ßÀÚ¿¡°Ô »ç¿ëÇϱ⠽¬¿î API°¡ ÇÊ¿äÇÒ °æ¿ì

Your web application must extend SOA over the Web and in the Cloud.

- Å¬¶ó¿ìµå ȯ°æÀ̳ª À¥À» ³Ñ¾î SOA ·Î È®ÀåÇØ¾ß ÇÏ´Â °æ¿ì



4. Áö¿ø ºê¶ó¿ìÀú

IE¿Í ¿ÀÆä¶ó¸¦ Á¦¿ÜÇÑ »çÆĸ®,Å©·Ò,ÆÄÀ̾îÆø½º ÃֽŹöÀü¿¡¼­ À¥ ¼ÒÄÏÀ» Áö¿ø



±×¸²1. ºê¶ó¿ìÀúº° Web Sockeet Áö¿ø ÇöȲ (Ãâó: http://caniuse.com/)



5. À¥¼ÒÄÏ ±¸Çö

¼­¹ö¿¬°á
HTML5°¡ Á¦°øÇÏ´Â WebSocket °´Ã¼¸¦ ÅëÇØ ¼­¹ö ¿¬°á ¼öÇà.

ÀÏ¹Ý Åë½ÅÀº ws, º¸¾È Åë½ÅÀº wss ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ë.
±âº» Æ÷Æ® ¿ª½Ã http,https¿Í µ¿ÀÏÇÑ 80,443À» ÀÌ¿ë.
var wSocket = new WebSocket("ws://yourdomain/demo");

- µ¥ÀÌÅÍ ¼Û½Å
¼­¹ö¿Í ¿¬°áÀÌ µÇ¸é µ¥ÀÌÅ͸¦ ÁÖ°í ¹ÞÀ» ¼ö ÀÖ°Ô µÈ´Ù. 

WebSocket °´Ã¼ÀÇ send ÇÔ¼ö·Î µ¥ÀÌÅ͸¦ ¼­¹ö·Î ¼Û½Å.
wSocket.send("¼Û½Å ¸Þ½ÃÁö");

µ¥ÀÌÅÍ ¼ö½Å
¼­¹ö¿¡¼­ Ǫ½Ã(Àü¼Û)ÇÏ´Â µ¥ÀÌÅ͸¦ ¹ÞÀ¸·Á¸é message À̺¥Æ®¸¦ ±¸Çö.
wSocket.onmessage function(e){ //¸Å°³º¯¼ö e¸¦ ÅëÇØ ¼ö½ÅµÈ µ¥ÀÌÅ͸¦ Á¶È¸ÇÒ ¼ö ÀÖ´Ù }

- À̺¥Æ® Á¦°ø
-- open À̺¥Æ®: ¿¬°áÀÌ ¼³Á¤µÇ¸é ¹ß»ý
-- close À̺¥Æ®: ¿¬°áÀÌ ²÷¾îÁö¸é ¹ß»ý

- À¥ ¼ÒÄÏÀ» ÀÌ¿ëÇϴ Ŭ¶óÀ̾ðÆ® ÄÚµåÀÇ Àüü ¸ð½À

<script>
  var wSocket = new WebSocket("ws:yourdomain/demo");
  
  wSocket.onmessage = function(e){  alert(e.data);  }  

  wSocket.onopen = function(e){ alert("¼­¹ö ¿¬°á ¿Ï·á"); } 
  wSocket.onclose = function(e){ alert("¼­¹ö ¿¬°á Á¾·á"); }  

  function send(){ //¼­¹ö·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ´Â ¸Þ¼­µå
    wSocket.send("Hello");
  }
</script>



6. À¥¼ÒÄÏ ¼­¹ö

À¥ ¼ÒÄÏÀº ÀϹÝÀûÀÎ TCP ¼ÒÄÏ°ú´Â ´Ù¸¥ ÇÁ·ÎÅäÄÝ·Î ¼³°èµÇ¾ú´Ù. 

µû¶ó¼­ À¥¼ÒÄÏ ¼­¹ö »ç¾ç¿¡ ¸Â°Ô »õ·Î ±¸ÇöÇØ¾ß ÇÑ´Ù.

- À¥ ¼ÒÄÏ ¼­¹ö¸¦ À§ÇÑ ¿ÀǼҽº ¸ðµâ
pywebsocket

phpwebsocket

jWebSocket

web-socket-ruby

Socket.IO-node



7.  jWebSocket¸¦ ÀÌ¿ëÇÑ ¸ðµâ
- ¶óÀ̺귯¸® ´Ù¿î·Îµå : http://jwebsocket.org/ 
- jWebSocketServer : ÀÚ¹Ù·Î ±¸ÇöµÈ À¥ ¼ÒÄÏ ¼­¹ö¸ðµâ

- jWebSocketClient : ÀÚ¹Ù½ºÅ©¸³Æ®·Î ±¸ÇöµÈ À¥ ¼ÒÄÏ Å¬¶óÀ̾ðÆ® µ¥¸ð 

- jWebSocketFullSource : jWebSocket ¶óÀ̺귯¸®ÀÇ Àüü ¼Ò½ºÄÚµå 



8. jWebSocketServer ±¸µ¿
- ¾ÆÆÄÄ¡ À¥¼­¹ö³ª ÅèÄÏÀ» ÀÌ¿ëÇÏ¿© ±¸µ¿

- Stand-Alone ±¸µ¿

- java ¼³Á¤

 -- jre 1.6 ÀÌ»ó.

 -- PATH¿¡ java.exe µî·Ï.

 -- ȯ°æº¯¼ö¿¡ JAVA_HOME ¼³Á¤ : ÀÚ¹Ù ROOT

 -- ȯ°æº¯¼ö¿¡ JWEBSOCKET_HOME ¼³Á¤ : jWebSocket ·çÆ® µð·ºÅ丮


- Stand-Alone·Î ±¸µ¿ ¿¹Á¦
1) ´Ù¿î¹Þ´Â jWebSocketServerÀ» ¾ÐÃàÇØÁ¦ 

2) bin Æú´õ¿¡ ÀÖ´Â jWebSocketServer.bat ÆÄÀÏÀ» ¸í·ÉÇÁ·ÒÇÁÆ®¿¡¼­ ½ÇÇà 

3)  À¥ ¼ÒÄÏ ¼­¹öÀÇ ±¸µ¿µÊ.

4) À¥ ¼ÒÄÏ ¼­¹ö¿ÍÀÇ Åë½Å·Î±×¿Í µð¹ö±× ¸Þ¼¼Áö ±â·ÏµÊ.
5) ½ÇÇàâÀ» ´ÝÀ¸¸é ¼­¹ö Á¾·á

* Âü°í Äü½ºÅ¸Æ® : http://code.google.com/p/jwebsocket/wiki/QuickStart



9. jWebSocketClient µ¥¸ð Å×½ºÆ®
- jWebSocketClient ´Ù¿î ÈÄ ¾ÐÃàÇØÁ¦
- äÆõ¥¸ðÀÎ chat.htm À» ½ÇÇà

µÎ °³ÀÇ Å©·Ò ºê¶ó¿ìÀú¿¡¼­ °¢°¢ ·Î±×ÀÎ ÇÑ µÚ, äÆÃÇÏ´Â ¸ð½À




jWebSocket ¿¡¼­ ¼­¹ö ¿¬°áÀ» À§ÇØ ´ÙÀ½°ú °°Àº urlÀ» Á¤ÀÇÇÏ°í ÀÖ´Ù
var lURL = jws.JWS_SERVER_URL + "/;prot=json,timeout=360000";
...
JWS_SERVER_URL: "ws://" + ( self.location.hostname ? self.location.hostname : "localhost" ) + ":8787"

ws ÇÁÅäÅäÄÝ

localhost, 8787Æ÷Æ®·Î ¿¬°á

json Æ÷¸Ë°ú ŸÀӾƿôÀÌ ¼³Á¤


Æ÷Æ® µî º¯°æ½Ã : \conf\jWebSocket.xml ÆÄÀÏ ¼öÁ¤

»óÅ °Ë»ç : ws.readState == WebSocket.OPEN / CONNECTING / CLOSED


* Ãâó : http://m.mkexdev.net/98

http://blog.daum.net/hopefullife/241




Ãâó: http://cutewebi.tistory.com/710 [cutewebi ÈñÁ¤³É¡Ú]