이 름 : 바다아이
|
조회수 : 8927
짧은 주소 : https://www.bada-ie.com/su/?231592034439
go get golang.org/x/net/websocket
더 자세한 것은 위에 경로로 가서 공부하세요.... 너무 잘 나와 있습니다.
client 소스
브라우저에서 F12 버튼 눌러 콘솔 부분에서 결과 보셔야 하는 거 아시리라 생각됩니다.
<html>
<head></head>
<body>
<script type="text/javascript">
var sock = null;
var wsuri = "ws://127.0.0.1:1234";
window.onload = function() {
console.log("onload");
sock = new WebSocket(wsuri);
sock.onopen = function() {
console.log("connected to " + wsuri);
}
sock.onclose = function(e) {
console.log("connection closed (" + e.code + ")");
}
sock.onmessage = function(e) {
console.log("message received: " + e.data);
}
};
functionsend() {
var msg = document.getElementById('message').value;
sock.send(msg);
};
</script>
<h1>WebSocket Echo Test</h1>
<form>
<p>
Message: <input id="message"type="text" value="Hello, world!">
</p>
</form>
<button onclick="send();">Send Message</button>
</body>
</html>
서버소스package main
import (
"fmt""log""net/http""golang.org/x/net/websocket"
)
func Echo(ws *websocket.Conn) {
var err errorfor {
var reply stringif err = websocket.Message.Receive(ws, &reply); err != nil {
fmt.Println("Can't receive")
break
}
fmt.Println("Received back from client: " + reply)
msg := "Received: " + reply
fmt.Println("Sending to client: " + msg)
if err = websocket.Message.Send(ws, msg); err != nil {
fmt.Println("Can't send")
break
}
}
}
func main() {
// 이건 안됩니다...
// http.Handle("/", websocket.Handler(Echo))
// 이건 됩니다....
http.HandleFunc("/",
func(w http.ResponseWriter, req *http.Request) {
s := websocket.Server{Handler: websocket.Handler(Echo)}
s.ServeHTTP(w, req)
})
if err := http.ListenAndServe(":1234", nil); err != nil {
log.Fatal("ListenAndServe:", err)
}
}
출처 : https://astaxie.gitbooks.io/build-web-application-with-golang/en/08.2.html
|
|
번 호
카테고리
제 목
이름
조회수
Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천 실행시간 : 0.06624 초 to webmaster... gogo sea. gogo sea.