go语言html5,在google go语言 golang中,html5,使用websocket,建立一个最简单的高并发web聊天室...

该博客展示了如何使用Go语言的websocket包创建一个简单的聊天服务器。服务器接收客户端连接,通过查询参数获取邮件地址,并建立一个映射以进行消息传递。当接收到客户端的消息时,服务器会尝试将消息发送给指定的收件人。此外,还提供了一个简单的HTML客户端示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 package main2 3 import (4 "code.google.com/p/go.net/websocket"5 6 "fmt"7 "io"8 "net/http"9 )10 11 func Echo(ws*websocket.Conn) {12 13 var err error14 15 mail :=ws.Config().Location.Query().Get("mail")16 mailto :=ws.Config().Location.Query().Get("mailto")17 18 fmt.Printf("%s, %s\n", mail, mailto)19 20 mailmap[mail]=ws21 22 fmt.Printf("%v\n", ws)23 24 msgconnect :=mail+"connect"25 fmt.Println("server:"+msgconnect)26 27 iferr=websocket.Message.Send(ws, msgconnect); err!=nil {28 fmt.Println("Can't send")29 return30 }31 32 for{33 var replystring34 35 iferr=websocket.Message.Receive(ws,&reply); err!=nil {36 fmt.Println("Can't receive")37 break38 }39 40 fmt.Println("Received back from client:"+reply)41 42 wst, err1 :=mailmap[mailto]43 if!err1 {44 msg :=mailto+"not connect"45 fmt.Println("server:"+msg)46 47 iferr=websocket.Message.Send(ws, msg); err!=nil {48 fmt.Println("Can't send")49 break50 }51 continue52 }53 54 msg :=mail+":"+reply55 fmt.Println("Sending to client:"+msg)56 57 iferr=websocket.Message.Send(wst, msg); err!=nil {58 fmt.Println("Can't send")59 break60 }61 }62 }63 64 //网页客户端65 func Client(w http.ResponseWriter, r*http.Request) {66 html :=`html>67 html>68 69 

70 71 golang websocket chatroom72 73 74 75 76 

WebSocket chat with server

77 
78 
79 
80 81 

82 mail:83 

84 85 

86 mailto:Connect to87 

88 89 90 91 

92 Message:Send Message93 

94 95 96 97 
98 99 100 101 102 153 154 `155 io.WriteString(w, html)156 }157 158 var mailmap=make(map[string]*websocket.Conn,10)159 160 func main() {161 162 fmt.Println("listen on port 8001")163 fmt.Println("visit http://127.0.0.1:8001/chat with web browser(recommend: chrome)")164 165 http.Handle("/", websocket.Handler(Echo))166 http.HandleFunc("/chat", Client)167 err :=http.ListenAndServe(":8001", nil)168 169 iferr!=nil {170 panic("ListenAndServe:"+err.Error())171 }172 }173
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值