最近一直纠结到底能不能在同一台服务器上和同一个客户端建立多个通讯连接,经过查阅大量的网页资料+亲自实践证明确实可以这样做,但是他们如何通讯?下面是相关代码:
Server.go 。。。。。。。。。。。。。。。。。。。。。。。。
package main
import (
"flag"
"fmt"
"log"
"net/http"
"github.com/gorilla/websocket"
"tttest/pubvisit"
"tttest/pubvisit/MapTable"
)
var upgrader = websocket.Upgrader{
ReadBufferSize: 4096,
WriteBufferSize: 4096,
}
func main() {
var addr = flag.String("addr", ":8000", "http service address")
http.HandleFunc("/Connection", Connection)
fmt.Println("Test Server Start...")
err := http.ListenAndServe(*addr, nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
func Connection(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println("Upgrade:", err)
}
defer conn.Close()
for {
info := pubvisit.ReadFromMsg(conn)
MapTable.SaveConn(conn, info.Name)
switch info.Name {
case "Jhon":
var jres pubvisit.Message
jres.Name = info.Name
jres.Phone