Go语言WebSockets编程全解析
1. WebSockets服务器基础
WebSockets服务器最初是一个HTTP服务器,它接受TCP连接并处理这些连接上的HTTP请求。当有请求将连接切换为WebSockets连接时,协议处理程序会从HTTP处理程序变为WebSocket处理程序。需要注意的是,只有这个TCP连接的角色会发生改变,服务器对于其他请求仍然是一个HTTP服务器,而该连接底层的TCP套接字则被用作WebSocket。
在简单的服务器中,会注册各种处理程序,如文件处理程序或函数处理程序。要处理WebSockets请求,只需注册不同类型的处理程序——WebSocket处理程序。服务器使用哪个处理程序取决于URL模式。例如:
| URL模式 | 处理程序类型 |
| ---- | ---- |
| / | 文件处理程序 |
| /cgi-bin/… | 函数处理程序 |
| /ws | WebSocket处理程序 |
以下是一个仅用于WebSockets的HTTP服务器示例:
func main() {
http.Handle("/", websocket.Handler(WSHandler))
err := http.ListenAndServe(":12345", nil)
checkError(err)
}
更复杂的服务器可以通过添加更多处理程序来同时处理HTTP和WebSockets请求。在实现方面,有多种选择,包括手动管理原始HTTP连接(TCP劫持)、使用 x
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



