Golang WebSocket 튜토리얼: 실시간 통신을 구현하는 방법
우선 WebSocket이 무엇인지 소개하겠습니다. WebSocket은 웹 브라우저와 서버 간의 전이중 통신을 위한 프로토콜입니다. HTTP 프로토콜과 달리 WebSocket을 사용하면 서버가 클라이언트에 데이터를 푸시할 수 있으며 실시간 통신, 이벤트 기반 및 기타 기능을 구현할 수 있습니다.
이 튜토리얼에서는 Golang을 사용하여 간단한 WebSocket 서버를 구현해 보겠습니다. WebSocket 연결을 설정하고, 메시지를 보내고 받는 방법을 시연하고 구체적인 코드 예제를 통해 설명하겠습니다.
먼저 Golang의 WebSocket 패키지를 가져와야 합니다:
import ( "log" "net/http" "github.com/gorilla/websocket" )
그런 다음 HTTP 프로토콜을 WebSocket 프로토콜로 업그레이드하기 위한 WebSocket 업그레이드 프로그램(업그레이드)을 정의해야 합니다.
var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, CheckOrigin: func(r *http.Request) bool { return true }, }
다음으로 WebSocket 핸들러 Connect를 정의해야 합니다. 기능. 이 함수는 HTTP 핸들러로 등록되며 WebSocket 연결 요청이 있을 때마다 호출됩니다.
func handleWebSocket(w http.ResponseWriter, r *http.Request) { // 将HTTP连接升级为WebSocket连接 conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println(err) return } // 在新的goroutine中处理WebSocket连接 go handleWebSocketConnection(conn) }
WebSocket 연결을 처리하는 함수에서는 메시지 수신 및 전송을 처리하는 루프를 정의해야 합니다.
func handleWebSocketConnection(conn *websocket.Conn) { for { // 读取客户端发送的消息 _, msg, err := conn.ReadMessage() if err != nil { log.Println(err) return } // 打印接收到的消息 log.Println("Received message:", string(msg)) // 发送消息给客户端 err = conn.WriteMessage(websocket.TextMessage, []byte("Hello, client!")) if err != nil { log.Println(err) return } } }
이제 위 함수를 HTTP 핸들러로 등록하고 HTTP 서버를 시작하기만 하면 됩니다.
func main() { // 注册WebSocket处理器 http.HandleFunc("/ws", handleWebSocket) // 启动HTTP服务器 log.Println("WebSocket server started on localhost:8080") err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal(err) } }
이제 간단한 WebSocket 서버가 완성되었습니다. 클라이언트가 WebSocket을 통해 서버에 연결되면 서버는 클라이언트가 보낸 메시지를 수신하고 고정된 메시지로 응답합니다.
서버를 테스트하려면 "Simple WebSocket Client"와 같은 브라우저 플러그인을 사용하여 서버 주소 ws://localhost:8080/ws를 입력하고 연결할 수 있습니다. 플러그인의 메시지 상자에 메시지를 입력하고 전송하면 수신된 메시지를 터미널에서 확인하는 동시에 클라이언트에 메시지를 회신할 수 있습니다.
위는 Golang을 사용하여 WebSocket을 구현하는 기본 튜토리얼입니다. WebSocket은 실시간 통신, 이벤트 중심 등에서 큰 잠재력을 갖고 있으며 채팅 애플리케이션, 실시간 데이터 시각화 및 기타 시나리오에서 사용할 수 있습니다. 이 튜토리얼을 통해 WebSocket을 이해하고 사용하는 데 도움이 되기를 바랍니다.
위 내용은 golang WebSocket 튜토리얼: 실시간 통신을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!