package main
import(
"flag"
"net/http"
"github.com/gorilla/websocket"
"fmt"
)
var addr=flag.String("addr","localhost:8080","http serve addredd")
var upgrader=websocket.Upgrader{
ReadBufferSize:1024,
WriteBufferSize:1024,
}
//
func main(){
flag.Parse()
http.HandleFunc("/",index)
http.HandleFunc("/ws",ws)
http.ListenAndServe(*addr,nil)
}
func index(w http.ResponseWriter,r *http.Request){
http.ServeFile(w,r,"index.html")
}
func ws(w http.ResponseWriter,r *http.Request){
conn,err:=upgrader.Upgrade(w,r,nil)
// conn类型表示websocket连接,服务器应该先调用升级方法,把http请求升级为websocket连接
if err!=nil{
fmt.Println("失败1")
return
}
defer conn.Close()
for{
messageType,msg,err:=conn.ReadMessage()
// 接收消息
// msg:字节
// messageType:text或者文件类型
fmt.Println("收到消息",string(msg),messageType)
if err!=nil{
fmt.Println("失败2")
break
}
err=conn.WriteMessage(messageType,msg)
// 发送消息
if err!=nil{
fmt.Println("失败3")
break;
}
}
}
echo
?著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 承接上一章介绍的command line, 这里我们用echo这个命令加以进一步说明。 温习 标准的command...