이 름 : 바다아이
|
조회수 : 10741
짧은 주소 : https://www.bada-ie.com/su/?811592021418
서버 package main
import (
"fmt""log""net/http""golang.org/x/net/http2""golang.org/x/net/websocket"
)
func echo(w http.ResponseWriter, req *http.Request) {
fmt.Fprintln(w, "ddd")
}
func aaa(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
}
}
}
type handler func(w http.ResponseWriter, r *http.Request)
func main() {
mux := http.DefaultServeMux
Han := make(map[string]handler)
Han2 := make(map[string]websocket.Handler)
Han["/"] = echo
Han2["/echo"] = aaa
for key, value := range Han {
mux.HandleFunc(key, value)
}
for key, value := range Han2 {
mux.HandleFunc(key,
func(w http.ResponseWriter, req *http.Request) {
s := websocket.Server{Handler: websocket.Handler(value)}
s.ServeHTTP(w, req)
})
}
srv := http.Server{
Addr: ":80",
Handler: mux,
// ReadTimeout: 10 * time.Second,
// WriteTimeout: 10 * time.Second,
// MaxHeaderBytes: 1 << 20,
}
http2.ConfigureServer(&srv, nil)
if err := srv.ListenAndServe(); err != nil {
log.Fatal("ListenAndServe:", err)
}
}
클라이언트
일반페이지는 http://localhost
웹소켓은 아래 소스를 임의 a.html 로 저장해서 실행....
<html>
<head></head>
<body>
<script type="text/javascript">
var sock = null;
var wsuri = "ws://127.0.0.1/echo";
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>
|
|
번 호
카테고리
제 목
이름
조회수
Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천 실행시간 : 0.27665 초 to webmaster... gogo sea. gogo sea.