Go에서 WebSocket 서버를 배포하려면 다음 단계가 필요합니다. WebSocket을 지원하도록 웹 서버를 선택하고 구성합니다. http.ListenAndServe 함수를 사용하여 Go WebSocket 서버를 시작합니다. WebSocketHandler 함수에서 메시지 보내기 및 받기를 포함하여 WebSocket 연결을 처리합니다. 실제 사례에서는 Go 및 Nginx를 사용하여 간단한 WebSocket 서버를 배포하는 방법을 보여줍니다.
Go WebSocket: 프로덕션 배포 가이드
최신 웹 개발에서 WebSocket은 서버와 클라이언트 간의 실시간 양방향 통신을 가능하게 하는 중요한 기술입니다. Go 언어는 기본적으로 WebSocket을 지원하므로 개발자는 강력하고 효율적인 WebSocket 서버를 만들 수 있습니다.
WebSocket 서버 배포
프로덕션 환경에서 Go WebSocket 서버를 배포하려면 몇 가지 단계가 필요합니다.
location /ws { proxy_pass http://localhost:8080; proxy_websocket on; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
http.ListenAndServe
함수를 사용하여 지정된 포트에서 Go WebSocket 서버를 시작합니다. 예: package main import ( "log" "net/http" ) func main() { mux := http.NewServeMux() // 添加 WebSocket 处理程序 mux.HandleFunc("/ws", WebSocketHandler) log.Printf("Server listening on port 8080") http.ListenAndServe(":8080", mux) }
WebSocketHandler 함수는 들어오는 WebSocket 연결을 처리합니다. 메시지를 보내고 받고, 오류를 처리하고, 연결을 닫을 수 있습니다.
실용 사례:
다음은 Go 및 Nginx를 사용하여 간단한 WebSocket 서버를 배포하는 예입니다.
func WebSocketHandler(w http.ResponseWriter, r *http.Request) { upgrader := websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { w.WriteHeader(http.StatusBadRequest) return } defer conn.Close() // 从客户端接收并回显消息 for { messageType, p, err := conn.ReadMessage() if err != nil { log.Println(err) break } conn.WriteMessage(messageType, p) } }
location /ws { proxy_pass http://localhost:8080; proxy_websocket on; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
$ go build $ ./websocket-server
ws://localhost:8080/ws
이제 서버와 상호 작용하여 실제 시간 메시지.
위 내용은 프로덕션 환경에 Go WebSocket을 배포하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!