websocket은 서버와 클라이언트 간에 Socket Connection을 유지해서 양방향 통신이 가능하게 하는 기술입니다.
* websocket에 대해서 잘 설명해놓은 다른 글들이 많으니 자세히 설명하지는 않겠습니다.
1. go lang 으로 웹소켓 구현하기!
* websocket 은 gorilla web toolkit에 있는 websocket을 사용 하였습니다.
기본적인 웹소켓 연결
package main
import "github.com/gorilla/websocket"
var upgrader = websocket.Upgrader{
ReadBufferSize: 256,
WriteBufferSize: 256,
}
func main(){
conn, err := upgrader.Upgrade(w, r, nil)
defer conn.Close()
if err != nil {
log.Printf("upgrader.Upgrade: %v", err)
return
}
}
웹소켓에서 클라이언트로부터 메시지 받기
messageType은 websocket.BinaryMessage 또는 websocket.TextMessage 의 값을 가지고 있는 int 값이고
실질적인 메시지는 p라는 변수에 []byte의 형태로 저장된다.
messageType, p, err := conn.ReadMessage()
if err != nil {
log.Printf("conn.ReadMessage: %v", err)
return
}
전달된 메시지를 받아 보려면 []byte -> string으로 자료형을 변경하면 된다.
fmt.Println(string(p))
클라이언트에게 메시지 전달하기
err := conn.WriteMessage(messageType, '메시지') //[]byte 타입의 메시지를 전달해야한다.
if err != nil {
log.Println(err)
}
'프로그래밍 > golang' 카테고리의 다른 글
go colly 내가 경험한 최고의 스크래핑 프레임워크 (0) | 2021.05.24 |
---|---|
주니어 개발자의 golang 서버 개발일지 -3 웹소켓을 이용한 채팅방 만들기. (0) | 2021.04.22 |
주니어 개발자의 go랭 서버 개발일지 -1 프로젝트 회고 (0) | 2021.04.15 |