웹소켓을 통해 데이터를 JSON으로 변환해서 보내니 웹서버에 부하가 걸리는 것 같아서
binary 데이터 그대로~ 보내고 웹에서 binary를 처리하도록 하려고 찾아보는 중
서버 사이드(golang)
for { messageType, p, err := conn.ReadMessage() if err != nil { log.Println(err) return } if err := conn.WriteMessage(messageType, p); err != nil { log.Println(err) return } } In above snippet of code, p is a []byte and messageType is an int with value websocket.BinaryMessage or websocket.TextMessage. |
[링크 : https://pkg.go.dev/github.com/gorilla/websocket#section-readme]
[링크 : https://kiwitrip.tistory.com/5]
클라이언트 사이드(웹 브라우저)
webSocket.onmessage = function (message) { var blob = message.data; var fileReader = new FileReader(); fileReader.onload = function (event) { var arrayBuffer = event.target.result; var dataview = new DataView(arrayBuffer); var answer = dataview.getFloat64(0); alert("Server> : " + answer); }; fileReader.readAsArrayBuffer(blob); }; |
[링크 : http://www.gisdeveloper.co.kr/?p=5594]
+
23.04.04
var wsHost = "http://my-sites-url.com/path/to/echo-web-socket-handler"; var ws = new WebSocket(wsHost); var buffer = new ArrayBuffer(5); // 5 byte buffer var bufferView = new DataView(buffer); bufferView.setFloat32(0, Math.PI); bufferView.setUint8(4, 127); ws.binaryType = 'arraybuffer'; ws.onmessage = function(message) { var view = new DataView(message.data); console.log('Uint8:', view.getUint8(4), 'Float32:', view.getFloat32(0)) }; ws.onopen = function() { ws.send(buffer); }; |
[링크 : https://riptutorial.com/javascript/example/6661/working-with-binary-messages]
'Programming > golang' 카테고리의 다른 글
go 포맷터 (0) | 2023.05.11 |
---|---|
golang echo directory listing (0) | 2023.05.08 |
golang 크로스 컴파일 GOARM GOARCH (0) | 2023.02.03 |
golang map 에 데이터 추가하기 (0) | 2023.01.13 |
golang reflect (0) | 2023.01.03 |