blob: 8b6fd20b1a5881d2f9e2fcddf4f2afb7a5cdecee (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
---
title: 웹 소켓
slug: WebSockets
translation_of: Web/API/WebSockets_API
---
<p>웹 소켓은 사용자의 브라우저와 서버 사이의 인터액티브 통신 세션을 설정할 수 있게 하는 고급 기술입니다. 개발자는 웹 소켓 API를 통해 서버로 메시지를 보내고 서버의 응답을 위해 서버를 폴링하지 않고도 이벤트 중심 응답을 받는 것이 가능합니다.</p>
<div class="cleared row topicpage-table">
<h2 class="Interfaces" id="Interfaces" name="Interfaces"><code>인터페이스</code></h2>
<dl>
<dt><code><code><a href="/ko/docs/Web/API/WebSocket" title="ko/WebSockets/WebSockets reference/WebSocket"><code>WebSocket</code></a></code></code></dt>
<dd>웹 소켓 서버로 연결하고 연결을 통해 데이터를 보내고 받는 기본 인터페이스</dd>
<dt><code><code><code><a href="/ko/docs/Web/API/CloseEvent" title="ko/WebSockets/WebSockets reference/CloseEvent"><code>CloseEvent</code></a></code></code></code></dt>
<dd>연결이 종료 되었을 때 웹 소켓 객체에 의해 전달된 이벤트</dd>
<dt><code><code><code><a href="/ko/docs/Web/API/MessageEvent" title="ko/WebSockets/WebSockets reference/MessageEvent"><code>MessageEvent</code></a></code></code></code></dt>
<dd>서버로 부터 메시지가 수신 되었을 때 웹 소켓 객체에 의해 전달된 이벤트</dd>
</dl>
</div>
<div class="section">
<h2 class="Tools" id="Tools" name="Tools"><code><code>도구</code></code></h2>
<ul>
<li><a class="external" href="http://socket.io" title="http://socket.io/">Socket.IO</a>: <a class="external" href="http://nodejs.org" title="http://nodejs.org/">Node.js</a>를 위한 강력한 크로스 플랫폼 웹 소켓 API</li>
<li><a class="link-https" href="https://github.com/Worlize/WebSocket-Node" title="https://github.com/Worlize/WebSocket-Node">WebSocket-Node</a>: <a class="external" href="http://nodejs.org" title="http://nodejs.org/">Node.js</a>를 위한 웹 소켓 서버 API 구현</li>
<li><a href="http://ajf.me/websocket/#libs" title="http://websocket.us/#libs">더 많은 프레임워크, 라이브러리 보기</a></li>
</ul>
<h2 class="Related_Topics" id="Related_Topics" name="Related_Topics"><code><code>관련 주제</code></code></h2>
<ul>
<li><a href="/en-US/docs/AJAX" title="AJAX">AJAX</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a></li>
</ul>
</div>
<h2 id="같이_보기"><code><code>같이 보기</code></code></h2>
<ul>
<li><a class="external" href="http://tools.ietf.org/html/rfc6455">RFC 6455 - 웹 소켓 프로토콜</a></li>
<li><a class="external" href="http://www.w3.org/TR/websockets/">웹 소켓 API 규격</a></li>
<li><a href="/en-US/docs/Server-sent_events" title="Server-sent_events">서버로부터의 이벤트</a></li>
<li><a class="external" href="http://websocket.us/">WebSocket.us</a> - 웹 소켓에 대한 비영리 커뮤니티</li>
</ul>
<h2 id="브라우저_호환성"><code><code>브라우저 호환성</code></code></h2>
<p><code><code>{{CompatibilityTable}}</code></code></p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th><code><code>기능</code></code></th>
<th><code><code>Chrome</code></code></th>
<th><code><code>Firefox (Gecko)</code></code></th>
<th><code><code>Internet Explorer</code></code></th>
<th><code><code>Opera</code></code></th>
<th><code><code>Safari</code></code></th>
</tr>
<tr>
<td><code><code>버전 76 지원 {{obsolete_inline}}</code></code></td>
<td><code><code>6</code></code></td>
<td><code><code>{{CompatGeckoDesktop("2.0")}}</code></code></td>
<td><code><code>{{CompatNo}}</code></code></td>
<td><code><code>11.00 (disabled)</code></code></td>
<td><code><code>5.0.1</code></code></td>
</tr>
<tr>
<td><code><code>버전 7 지원 {{obsolete_inline}}</code></code></td>
<td><code><code>{{CompatNo}}</code></code></td>
<td><code><code>{{CompatGeckoDesktop("6.0")}}<br>
{{property_prefix("Moz")}}</code></code></td>
<td><code><code>{{CompatNo}}</code></code></td>
<td><code><code>{{CompatNo}}</code></code></td>
<td><code><code>{{CompatNo}}</code></code></td>
</tr>
<tr>
<td><code><code>버전 10 지원 {{obsolete_inline}}</code></code></td>
<td><code><code>14</code></code></td>
<td><code><code>{{CompatGeckoDesktop("7.0")}}<br>
{{property_prefix("Moz")}}</code></code></td>
<td><code><code>HTML5 Labs</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
</tr>
<tr>
<td><code><code>표준 - RFC 6455 지원</code></code></td>
<td><code><code>16</code></code></td>
<td><code><code>{{CompatGeckoDesktop("11.0")}}</code></code></td>
<td><code><code>10</code></code></td>
<td><code><code>12.10</code></code></td>
<td><code><code>6.0</code></code></td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th><code><code>기능</code></code></th>
<th><code><code>Android</code></code></th>
<th><code><code>Firefox Mobile (Gecko)</code></code></th>
<th><code><code>IE Mobile</code></code></th>
<th><code><code>Opera Mobile</code></code></th>
<th><code><code>Safari Mobile</code></code></th>
</tr>
<tr>
<td><code><code>버전 76 지원 {{obsolete_inline}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
</tr>
<tr>
<td><code><code>버전 7 지원 {{obsolete_inline}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
</tr>
<tr>
<td><code><code>버전 8 지원 (IETF draft 10) {{obsolete_inline}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatGeckoMobile("7.0")}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
</tr>
<tr>
<td><code><code>표준 - RFC 6455 지원</code></code></td>
<td><code><code>16 (Chrome)</code></code></td>
<td><code><code>{{CompatGeckoDesktop("11.0")}}</code></code></td>
<td><code><code>{{CompatUnknown}}</code></code></td>
<td><code><code>12.10</code></code></td>
<td><code><code>6.0</code></code></td>
</tr>
</tbody>
</table>
</div>
<h3 id="Gecko"><code><code>Gecko</code></code></h3>
<p><code><code>파이어폭스는 발전하는 웹 소켓 규격을 지속적으로 지원하고 있습니다. 파이어폭스 6은 웹 소켓 프로토콜 버전 7을, 파이어폭스 7은 버전 8을 지원합니다. (IETF 초안 10) 파이어폭스 모바일은 7.0부터 웹 소켓을 지원합니다.</code></code></p>
<h4 id="Gecko_6.0"><code><code>Gecko 6.0</code></code></h4>
<p><code><code>Gecko 6.0 {{geckoRelease("6.0")}} 이전엔 <code>WebSocket </code>객체가 존재하였으며, 일부 사이트가 <code>WebSocket </code>서비스는 접두어가 붙지 않는 것이라고 생각하기도 했습니다. 이 객체는 <code>MozWebSocket</code>으로 개명되었습니다.</code></code></p>
<h4 id="Gecko_7.0"><code><code>Gecko 7.0</code></code></h4>
<p><code><code>Gecko 7.0 {{geckoRelease("7.0")}} 이후로 고급 환경 설정의 <code>network.websocket.max-connections</code> 항목을 통해 동시에 열릴 수 있는 웹 소켓 연결의 최대값을 지정할 수 있습니다. 기본값은 200입니다.</code></code></p>
<h4 id="Gecko_8.0"><code><code>Gecko 8.0</code></code></h4>
<p><code><code>Gecko 8.0 {{geckoRelease("8.0")}} 이후로 웹 소켓 규격 초안의 변경에 따라 웹 소켓의 deflate 스트림 확장이 비활성화 되었습니다. 이는 일부 사이트의 호환성 문제를 해결합니다.</code></code></p>
<h4 id="Gecko_11.0"><code><code>Gecko 11.0</code></code></h4>
<p><code><code>Gecko 11.0 이전에는 모든 메시지가 16 MB를 넘을 수 없었으나, 지금은 최대 2 GB까지 가능합니다. 그러나 (특히 모바일에서) 권장되는 방법은 아닙니다. 충분한 메모리를 가지지 못한 장치에서는 통신이 실패하게 될 것입니다.</code></code></p>
<p><code><code>추가적으로 바이너리 데이터를 위한 ArrayBuffer 지원이 구현되었습니다.</code></code></p>
<p><code><code>Gecko 11.0부터 웹 소켓 API는 더이상 접두사가 붙지 않습니다.</code></code></p>
<div class="warning"><code><code><strong>주의:</strong> 파이어폭스 4, 5에서 웹 소켓이 비활성화 돼있었던 가장 주요한 이유는 <a class="external" href="http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html" title="http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html">프로토콜 설계의 보안성 문제</a> 때문이었습니다. 이는 파이어폭스 6에서 상위 버전의 프로토콜을 구현함으로써 해결되었습니다.</code></code></div>
<div><code><code>{{HTML5ArticleTOC}}</code></code></div>
|