[go] Go 언어에서 웹소켓으로 데이터 전송하는 방법
웹소켓은 실시간 양방향 통신을 제공하는 프로토콜로, Go 언어에서도 쉽게 구현할 수 있습니다. 이번 포스트에서는 Go 언어를 사용하여 웹소켓을 통해 데이터를 전송하는 방법에 대해 알아보겠습니다.
1. gorilla/websocket
라이브러리 설치
먼저, 웹소켓을 구현하기 위해 gorilla/websocket
라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 라이브러리를 설치하세요.
go get github.com/gorilla/websocket
2. 웹소켓 서버 구현
다음으로, 웹소켓을 통해 데이터를 전송하는 서버를 구현해보겠습니다.
package main
import (
"github.com/gorilla/websocket"
"net/http"
)
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true
},
}
func main() {
http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) {
conn, _ := upgrader.Upgrade(w, r, nil)
defer conn.Close()
for {
messageType, p, _ := conn.ReadMessage()
conn.WriteMessage(messageType, p)
}
})
http.ListenAndServe(":8080", nil)
}
위 코드에서는 gorilla/websocket
라이브러리를 사용하여 간단한 웹소켓 서버를 구현했습니다.
3. 웹소켓 클라이언트 구현
이제 클라이언트 측에서 웹소켓을 통해 데이터를 전송하는 방법을 알아봅시다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WebSocket Example</title>
</head>
<body>
<script>
const ws = new WebSocket('ws://localhost:8080/ws');
ws.onopen = function(event) {
ws.send('Hello, WebSocket Server!');
}
ws.onmessage = function(event) {
console.log('Received message: ' + event.data);
}
</script>
</body>
</html>
위의 HTML 코드는 웹소켓 클라이언트를 구현한 것으로, 서버에 연결하고 메시지를 전송한 뒤 서버로부터 메시지를 수신하는 기능을 갖고 있습니다.
이렇게 간단히 Go 언어를 사용하여 웹소켓을 통해 데이터를 전송할 수 있습니다. 특히 gorilla/websocket
라이브러리를 사용하면 간편하게 웹소켓을 구현할 수 있습니다.
참고 문헌: