test go web socket

我不是女神ヾ 2021-09-01 12:20 439阅读 0赞

server.go

  1. package main
  2. import (
  3. "github.com/labstack/echo/v4"
  4. "golang.org/x/net/websocket"
  5. )
  6. func main() { //20200727
  7. e := echo.New()
  8. e.GET("/ws", func(c echo.Context) error {
  9. handler := websocket.Handler(func(conn *websocket.Conn) {
  10. readString(conn)
  11. conn.Write([]byte("ok"))
  12. println("send client : ok")
  13. })
  14. handler.ServeHTTP(c.Response().Writer, c.Request())
  15. return nil
  16. })
  17. e.Start(":11111")
  18. }
  19. func readString(conn *websocket.Conn) {
  20. var msg = make([]byte, 1024)
  21. read, err := conn.Read(msg)
  22. if err != nil {
  23. println(err)
  24. }
  25. println("from client : ", string(msg[:read]))
  26. }

client_test.go

  1. package main
  2. import (
  3. "encoding/json"
  4. "golang.org/x/net/websocket"
  5. "testing"
  6. )
  7. var wsurl = "ws://localhost:11111/ws"
  8. var origin = "ws://localhost:11111"
  9. func TestSend(t *testing.T) { // 20200727
  10. ws, err := websocket.Dial(wsurl, "", origin)
  11. if err != nil {
  12. t.Log(err)
  13. }
  14. m := make(map[string]string)
  15. m["deviceId"] = "123"
  16. marshal, _ := json.Marshal(m)
  17. if err := websocket.Message.Send(ws, marshal); err != nil {
  18. t.Log(err)
  19. }
  20. t.Log("send server : ", m)
  21. data := make([]byte, 1024)
  22. n, err := ws.Read(data)
  23. if err != nil {
  24. t.Error(err)
  25. }
  26. t.Log("form server : ", string(data[:n]))
  27. }

发表评论

表情:
评论列表 (有 0 条评论,439人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Go语言Socket

    一.Socket简介 > 在标准库的net包中可供了可移植的网络I/O接口,其中就包含了Socket > Socket在TCP/IP网络分层中并不存在,是对T

    相关 go socket编程

    go的网络应用方面程序的编写都在net包里面, 比如net/http, net/rpc, net/mail, net/smtp 等, 今天我们主要来讲解如何使用net/soc

    相关 go test 下篇

    前言 go test [上篇][Link 1] 给大家介绍了golang自带的测试框架,包括单元测试和性能测试。但是在实际生产中测试经常会遇到一些网络或者依赖的第三方系统