WebSocket은 클라이언트와 서버 간의 실시간 양방향 통신을 위한 강력한 솔루션을 제공합니다. 이 튜토리얼에서는 인기 있는 Gorilla WebSocket 라이브러리를 활용하여 Go에서 WebSocket 서버를 생성하는 과정을 안내합니다.
WebSocket은 HTTP의 요청-응답 모델과 달리 지속적인 전이중 통신 채널을 제공합니다. 이러한 지속적인 연결을 통해 효율적이고 지속적인 데이터 교환이 가능합니다.
Gorilla WebSocket 라이브러리는 Go에서 WebSocket 구현을 단순화하여 핸드셰이크, 메시지 I/O 및 연결 수명 주기를 관리합니다.
이 튜토리얼에서는 기본 WebSocket 서버와 클라이언트를 구축합니다.
다음과 같이 프로젝트를 구성하세요.
<code>websocket-server/ ├── main.go # Application entry point ├── handlers/ # WebSocket handler functions │ └── websocket.go # Handles WebSocket connections and messages ├── static/ # Client-side HTML/JS files │ └── index.html # Simple client interface └── go.mod # Go module file</code>
Gorilla WebSocket 패키지 설치:
<code class="language-bash">go get -u github.com/gorilla/websocket</code>
main.go
만들기 main.go
:
<code class="language-go">package main import ( "fmt" "log" "net/http" "websocket-server/handlers" ) func main() { http.HandleFunc("/ws", handlers.HandleWebSocket) http.Handle("/", http.FileServer(http.Dir("./static"))) port := ":8080" fmt.Printf("Server running on http://localhost%s\n", port) log.Fatal(http.ListenAndServe(port, nil)) }</code>
/ws
에서 HTTP 서버를 설정하고 정적 파일을 제공하며 WebSocket 연결을 처리합니다.
websocket.go
)handlers
디렉토리에서 websocket.go
:
<code class="language-go">package handlers import ( "fmt" "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 { fmt.Println("Upgrade failed:", err) return } defer conn.Close() fmt.Println("Client connected") for { _, msg, err := conn.ReadMessage() if err != nil { fmt.Println("Read failed:", err) break } fmt.Printf("Received: %s\n", msg) if err := conn.WriteMessage(websocket.TextMessage, msg); err != nil { fmt.Println("Write failed:", err) break } } }</code>
이 핸들러는 HTTP 연결을 업그레이드하고 메시지를 읽고 다시 에코합니다.
HandleWebSocket
은(는) 수신 메시지를 처리합니다. 이를 확장하여 브로드캐스팅이나 메시지 지속성과 같은 기능을 구현할 수 있습니다.
index.html
)index.html
디렉토리에 static
생성: (이 섹션에서는 웹소켓에 연결하려면 클라이언트 측 JavaScript 구현이 필요합니다. 간결성을 위해 기본 예는 생략되었지만 많은 예는 온라인에서 쉽게 사용할 수 있습니다.)
달려 go run main.go
. 그런 다음 브라우저에서 http://localhost:8080
을 엽니다(적절한 클라이언트 측 JavaScript가 포함되어 있음).
이 튜토리얼에서는 Gorilla를 사용하는 기본 Go WebSocket 서버를 보여줍니다. WebSocket은 실시간 애플리케이션에 이상적입니다. 필요에 따라 인증, 브로드캐스팅, 데이터 저장을 통해 이 기반을 확장하세요.
[여기에 GitHub 저장소 링크 삽입]
위 내용은 Go와 함께 WebSocket 서버 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!