常见传输协议 不够全面会陆续补充
| 协议 | 链接 | 面向 | 默认端口 | 备注 | 
| 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("连接已关闭..."); 
        };
      }
    },
                    
                
                
            
        
浙公网安备 33010602011771号