WebSocket APIλ μ¬μ©μμ λΈλΌμ°μ μ μλ² μ¬μ΄μ **μλ°©ν₯ ν΅μ μΈμ (two-way interactive communication session)**μ μ¬λ κ²μ κ°λ₯νκ² νλ κΈ°μ μ λλ€. μ΄λ₯Ό νμ©νλ©΄, μλ²μ λ©μμ§λ₯Ό 보λμ λ λ΅μ₯μ νμΈνκΈ° μν΄ μ£ΌκΈ°μ μΌλ‘ μλ²μ μμ²μ λ³΄λΌ νμ μμ΄(without having to poll the server for a reply) μ΄λ²€νΈ κΈ°λ° μλ΅μ λ°μ μ μμ΅λλ€.
μΉ νμ΄μ§μ νκ³μμ λ²μ΄λ μ€μκ°μΌλ‘ μνΈμμ©νλ μΉ μλΉμ€λ₯Ό λ§λλ νμ€ κΈ°μ μ΄λ―λ‘ μ±ν , κ²μ λ±μ μ€μκ°μ±μ΄ νμν μλΉμ€μμ μ°μ λλ€!
1989λ ν λ²λμ€ λ¦¬κ° μΉμ μ°½μν λλ§ ν΄λ, μΉ νμ΄μ§μ μ¬μ©μμ μνΈμμ©μ ν¬κ² κ³ λ €λμ§ μμμ΅λλ€. κ·Έ λλ μ°κ΅¬κΈ°κ΄μμμ ν΅μ μ΄ μ£Ό λͺ©μ μ΄μμΌλκΉμ. νμ§λ§ μΉμ΄ μ μ μ μΈκ³ μ¬λλ€μ μΌμμνμ νκ³ λ€μκ³ , PCμ© μμ© νλ‘κ·Έλ¨(Native Application)μ λ체ν μ μλ μ λκΉμ§ λμμ΅λλ€.
μΌλ°μ μΌλ‘ μ¬μ©μκ° μΉμ μ΄μ©νλ λ°©μμ HTTP μμ²μ λν HTTP μλ΅μ λ°μμ λΈλΌμ°μ μ νλ©΄μ κΉ¨λνκ² μ§μ°κ³ λ°μ μλ΅ λ΄μ©μ μλ‘ κ·Έλ¦¬λ κ²μ λλ€. νμ΄μ§λ₯Ό μ΄λνλ©΄ λ΄μ©μ μ§μ°κ³ λ€μ κ·Έλ¦¬κ² λλ κΉλΉ‘μμ΄ μκΉλλ€.
μ΄λ¬ν κΉλΉ‘μμ μμ κ³ μνλ λΆλΆλ§ λ€μ 그리며 μ€μκ°μΌλ‘ μ¬μ©μμ μνΈμμ©νλ λ°©μμ΄ λνλκ³ μ΄λ¬ν μΉ μλΉμ€λ₯Ό μ νΈνλ μ¬μ©μκ° μ¦κ°ν©λλ€. λ³΄λ€ μ½κ² μνΈμμ©νλ μΉ νμ΄μ§λ₯Ό λ§λ€λ €λ©΄ λΈλΌμ°μ μ μΉ μλ² μ¬μ΄μ λ μμ λ‘μ΄ μλ°©ν₯ λ©μμ§ μ‘μμ μ΄ νμνκΈ° λλ¬Έμ, WebSocket κΈ°μ μ΄ λ±μ₯ν©λλ€!
μΉμμΌμ μΉ λΈλΌμ°μ μμ κ°λ¨ν μ€μ΅μ ν΄λ΄ μλ€!
μΉ λΈλΌμ°μ μ κ°λ°μ λꡬλ₯Ό μΌμ μ½μ νμΌλ‘ λ€μ΄κ°λ©΄ μλ°μ€ν¬λ¦½νΈλ₯Ό μ€νν μ μμ΅λλ€. μ¬κΈ°μ ν΄λΉ μΉ λΈλΌμ°μ κ° μΉμμΌμ μ§μνλμ§ μλ €λ©΄ μλ μ€ν¬λ¦½νΈλ₯Ό μ€ννμ λ True
κ° λμ€λμ§ λ³΄λ©΄ λ©λλ€.
if ('WebSocket' in window) {
console.log('WebSocket exists.')
} else {
console.log('WebSocket does not exist.')
}
https://www.websocket.org/echo.html μμ WebSocketμ μ΄μ©ν Echo Testλ₯Ό ν΄λ³Ό μ μμ΅λλ€. μ°λ¦¬λ μ¬κΈ°μ μ 곡λλ WebSocket Echo Serverλ₯Ό κ°μ Έλ€ μΈκ²μ!
const wsURL = 'wss://echo.websocket.org/'
let websocket = new WebSocket(wsURL)
websocket.onopen = e => console.log('CONNECTED')
websocket.onclose = e => console.log('DISCONNECTED')
websocket.onmessage = e => console.log(`RESPONSE: ${e.data}`)
websocket.onerror = e => console.log(`ERROR: ${e.data}`)
function send(message) {
console.log(`SENT ${message}`)
websocket.send(message)
}
μ μ½λλ WebSocket Echo Serverμ URLλ‘ WebSocket μΈμ€ν΄μ€λ₯Ό μμ±νκ³ , μ΄λ²€νΈμ λ°λ₯Έ νΈλ€λ¬ ν¨μλ€κ³Ό WebSocketμ λ©μμ§λ₯Ό ν¨μλ₯Ό μ μν©λλ€.
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f16fd9ea-092f-4685-b729-c8108672eba2/__2021-01-02__4.47.38-1.mov