zoukankan      html  css  js  c++  java
  • gin+websocket

    gin + "golang.org/x/net/websocket"

    package main
    
    import (
    	"github.com/gin-gonic/gin"
    	"golang.org/x/net/websocket"
    	"log"
    	"time"
    )
    
    func main() {
    	log.SetFlags(log.Lshortfile | log.LstdFlags)
    
    	var router = gin.Default()
    	router.GET("/ws", ginWebsocketHandler(wsConnHandle))
    
    	if err := router.Run(":9898"); err != nil {
    		log.Println(err)
    	}
    }
    
    // websocket.Handler 转 gin HandlerFunc
    func ginWebsocketHandler(wsConnHandle websocket.Handler) gin.HandlerFunc {
    	return func(c *gin.Context) {
    		log.Printf("new ws request: %v", c.Request.RemoteAddr)
    		if c.IsWebsocket() {
    			wsConnHandle.ServeHTTP(c.Writer, c.Request)
    		} else {
    			_, _ = c.Writer.WriteString("===not websocket request===")
    		}
    	}
    }
    
    // websocket连接处理
    func wsConnHandle(conn *websocket.Conn) {
    	for {
    		var msg string
    		if err := websocket.Message.Receive(conn, &msg); err != nil {
    			log.Println(err)
    			return
    		}
    
    		log.Printf("recv: %v", msg)
    
    		data := []byte(time.Now().Format(time.RFC3339))
    		if _, err := conn.Write(data); err != nil {
    			log.Println(err)
    			return
    		}
    	}
    }
    

      

  • 相关阅读:
    WinHex简介
    CTF中图片隐藏文件分离方法
    隐写术的相关解法
    JPEG文件格式
    PNG文件结构
    网络安全实验室—基础关
    实验吧—密码学(1)
    YIT-CTF—隐写术
    YIT-CTF—Web
    YIT-CTF—社工类
  • 原文地址:https://www.cnblogs.com/baigoogledu/p/13225567.html
Copyright © 2011-2022 走看看