[go] Go 언어를 사용하여 웹소켓 서버를 구축하는 방법
웹소켓은 실시간 양방향 데이터 통신을 지원하는 프로토콜로, 실시간 채팅 애플리케이션, 주식 시세 업데이트 등 다양한 응용프로그램에 사용됩니다. Go 언어를 사용하여 웹소켓을 구축하는 방법을 알아봅니다.
1. 웹소켓 패키지 설치
먼저, github.com/gorilla/websocket
패키지를 사용하여 웹소켓 서버를 구축할 수 있습니다. 다음 명령을 사용하여 패키지를 설치합니다.
go get github.com/gorilla/websocket
2. 웹소켓 서버 구현
다음은 기본적인 웹소켓 서버를 구현하는 예시입니다.
package main
import (
"log"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true
},
}
func handleWebSocket(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println("웹소켓 연결 오류:", err)
return
}
defer conn.Close()
for {
messageType, message, err := conn.ReadMessage()
if err != nil {
log.Println("메시지 수신 오류:", err)
return
}
log.Printf("수신된 메시지: %s", message)
err = conn.WriteMessage(messageType, message)
if err != nil {
log.Println("메시지 송신 오류:", err)
return
}
}
}
func main() {
http.HandleFunc("/ws", handleWebSocket)
http.ListenAndServe(":8080", nil)
}
위 코드는 기본적인 웹소켓 서버를 구현하는 예시입니다. /ws
엔드포인트로 웹소켓 연결을 핸들링하고, 메시지를 읽고 다시 전송하는 예시 코드입니다.
이제, 위의 예시 코드를 통해 Go 언어로 웹소켓 서버를 구축하는 방법을 알아보았습니다.
참고 자료
다른 튜토리얼과 실제 프로젝트에서 웹소켓을 사용할 때 위의 코드를 참고하여 직접 적용해보세요.