常见传输协议  不够全面会陆续补充

协议 链接 面向 默认端口 备注
HTTP TCP链接 网页 80 超文本传输协议
HTTPS TCP链接 加上 SSL (安全套接层) 网页 443 安全超文本传输协议 ()
FTP TCP链接 文件 21 文件传输协议
WebSockets TCP链接(单个链接全双工通信) 数据 80 html5 客户端和服务端全双工通信
wss  TCP链接 加上 SSL (安全套接层)   443  安全的html5通信协议 

 

WebSockets 应用

server 端代码,语言go

package wsApi

import (
	"fmt"
	"net/http"

	"github.com/gin-gonic/gin"
	"github.com/gorilla/websocket"
)

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

func Ping(c *gin.Context) {
	fmt.Println(123333);
	ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
	if err != nil {
		return
	}
	defer ws.close()
	for {
		//读取ws中的数据
		mt, message, err := ws.ReadMessage()
		if err != nil {
			break
		}
		//如果发送的信息是ping则返回pong
		if string(message) == "ping" {
			message = []byte("pong")
		}
		//写入ws数据  向前端返回数据
		err = ws.WriteMessage(mt, message)
		if err != nil {
			break
		}
	}
}

 client 端代码

startWS(){
      if(window.WebSocket){
        let socket = new WebSocket('ws://localhost:8081/wsapi');
        socket.onopen = () => {
          socket.send('hhahahahah')
        }
        socket.onmessage = (evt) => {
          var received_msg = evt.data;
          console.log("数据已接收...", received_msg);
        }
        socket.onclose = function(){ 
          // 关闭 websocket
          console.log("连接已关闭..."); 
        };
      }
    },

  

posted on 2022-08-23 21:42  fyc春  阅读(13)  评论(0编辑  收藏  举报