当前位置: 首页 > news >正文

新疆乌鲁木齐建设职业学校网站网络营销专业课程

新疆乌鲁木齐建设职业学校网站,网络营销专业课程,不备案怎么做网站,织梦 网站名称WebSocket 是一种新型的网络通信协议,可以在 Web 应用程序中实现双向通信。 WebSocket与HTTP协议的主要区别是: HTTP 和 WebSocket 协议的区别 HTTP 是单向的,而 WebSocket 是双向的。 在客户端和服务器之间的通信中,每个来自客…

WebSocket 是一种新型的网络通信协议,可以在 Web 应用程序中实现双向通信。

WebSocket与HTTP协议的主要区别是:

HTTP 和 WebSocket 协议的区别 HTTP 是单向的,而 WebSocket 是双向的。

在客户端和服务器之间的通信中,每个来自客户端的 HTTP 请求都会建立一个新的连接,并在从服务器收到响应后关闭,而WebSocket连接只建立一次,并在服务器或客户端终止连接之前重复使用

HTTP 的空闲连接的超时时间为 60 秒。可用于响应时间非常短的调用
WebSocket 空闲连接的超时时间为 3600 秒(1 小时),可应用于响应时间长于 60 秒的调用,最大连接数为 250。

WebSocket服务器

首先,创建一个 HTTP 服务器。在这个服务器中,创建一个用于处理 WebSocket 连接的函数 handleWebSocket。

其实就是开启一个http服务器。

func HandleWebSocket(w http.ResponseWriter, r *http.Request) {}
func main() {http.HandleFunc("/ws", HandleWebSocket)http.ListenAndServe(":8080", nil)
}

然后在该函数中,使用 gorilla/websocket 包来处理 WebSocket 连接。

1.建立upgrade变量

websocket协议建立连接的握手过程就是http协议的头部加入了upgrade字段(upgrade:websocket)。
首先要导入"github.com/gorilla/websocket"包

var upgrade = websocket.Upgrader{ReadBufferSize:  1024,WriteBufferSize: 1024,CheckOrigin: func(r *http.Request) bool {return true},
}

2.升级http连接成websocket连接,处理websocket连接

将http连接头部加入upgrade字段,成为websocket协议。

func HandleHome(w http.ResponseWriter, r *http.Request) {//升级成websocketconn, err := upgrade.Upgrade(w, r, nil)if err != nil {log.Println(err)}//websocket读写逻辑for {messageType, p, err := conn.ReadMessage()if err != nil {log.Println(err)return}log.Println("receive:", string(p))conn.WriteMessage(messageType, []byte("hello, i am server"))}
}

WebSocket客户端

客户端主要是用来测试websocket服务器是否正确工作的,下面提供两种websocket服务器。

html+js实现

<!DOCTYPE html>
<html>
<head><title>WebSocket Test</title>
</head>
<body><script>var ws = new WebSocket("ws://localhost:8080/ws");ws.onopen = function() {console.log("WebSocket connection opened.");ws.send("Hi From the Client!")};ws.onmessage = function(event) {console.log("Received message: " + event.data);};ws.onclose = function() {console.log("WebSocket connection closed.");};ws.onerror = function(event) {console.log("WebSocket error: " + event.data);};</script>
</body>
</html>

利用golang websocket包实现

func WebSocketClient() {conn, _, err := websocket.DefaultDialer.Dial("ws://127.0.0.1:8080/ws", nil)if err != nil {panic(err)}defer conn.Close()for {time.Sleep(time.Second)conn.WriteMessage(websocket.TextMessage, []byte("hi i am client"))_, p, err := conn.ReadMessage()if err != nil {log.Println(err)}println("client recv:", string(p))}}
http://www.tj-hxxt.cn/news/52736.html

相关文章:

  • 注册域名和建立网站的过程网站备案查询工信部
  • 怎么用电脑做网站服务器吗上海牛巨微seo优化
  • 学校后勤网站建设的作用今天的三个新闻
  • 深圳好的高端企业网站建设公司百度注册公司网站
  • 怎样自己做免费的网站网站优化培训
  • 做系统的图标下载网站优质外链平台
  • 手机哪个浏览器不受网站限制seo快速排名优化方法
  • 白云区建网站公司吸引人的微信软文
  • 朝阳区网站建设推广seoseo免费课程视频
  • 手机特殊网站建站模板免费下载
  • 县门户网站建设整改攀枝花seo
  • 网站建设购销合同百度seo快速见效方法
  • 如何找人帮我做网站推广什么网站都能进的浏览器
  • 阿里云 做网站上海企业网站推广
  • 我是做网站怎么赚钱吸引人的软文
  • 做网站建设网站制作中国新闻社
  • 徐州做网站的公司济南疫情最新消息
  • 门户网站产品设计方案不要手贱搜这15个关键词
  • 淄博哪有做网站的西安优化排名推广
  • wordpress 移动端模板下载seo视频教程汇总
  • 织梦可以做淘宝客网站吗网店推广分为哪几种类型
  • 网页设计公司怎么选抖音seo关键词优化排名
  • 怎么给一个花店做网站建设石家庄新闻
  • 产品销售网站模块如何设计时事新闻热点摘抄
  • 东莞手机网站设计公司镇江优化推广
  • w网站怎么做北京网站优化站优化
  • 网站页面优化简单吗小果seo实战培训课程
  • wordpress注册函数seo自学网官网
  • 零用贷网站如何做厦门人才网唯一官网
  • 广州天河酒店网站建设怎么做好网站搜索引擎优化