server_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package server
  2. import (
  3. "fmt"
  4. "log"
  5. "testing"
  6. "github.com/google/uuid"
  7. "github.com/gorilla/websocket"
  8. "github.com/spf13/viper"
  9. "sikey.com/websocket/utils/keys"
  10. )
  11. func BenchmarkTest1(b *testing.B) {
  12. fmt.Println(b.N)
  13. for i := 0; i < b.N; i++ {
  14. _ = fmt.Sprintf("%d", i)
  15. }
  16. }
  17. func BenchmarkServer_WebsocketPressure(b *testing.B) {
  18. b.ReportAllocs()
  19. b.ResetTimer()
  20. b.SetParallelism(10)
  21. fmt.Println(b.N)
  22. b.RunParallel(func(p *testing.PB) {
  23. for p.Next() {
  24. websocketConnect()
  25. }
  26. })
  27. }
  28. func websocketConnect() {
  29. conn, _, err := websocket.DefaultDialer.Dial(
  30. fmt.Sprintf(`ws://127.0.0.1:10082/websocket/endpoint?X-Websocket-Header-ID=%s`, uuid.NewString()),
  31. // fmt.Sprintf(`ws://106.75.230.4:10082/websocket/endpoint?X-Websocket-Header-ID=%s`, uuid.NewString()),
  32. nil)
  33. if err != nil {
  34. log.Println(err)
  35. }
  36. defer conn.Close()
  37. // message := Message{Type: MessageTypePingPong, RequestId: strconv.Itoa(int(time.Now().UnixMilli())), Content: "ping"}
  38. // conn.SetWriteDeadline(time.Now().Add(time.Second * 60))
  39. // err = conn.WriteMessage(websocket.TextMessage, serializationMessage(&message))
  40. // if err != nil {
  41. // log.Println(err)
  42. // }
  43. // go func() {
  44. // for {
  45. // //conn.SetReadDeadline(time.Now().Add(time.Second * 2))
  46. // _, _, err = conn.ReadMessage()
  47. // if err != nil {
  48. // log.Println(err)
  49. // return
  50. // }
  51. // //conn.SetReadDeadline(time.Now().Add(time.Second * 2))
  52. // //log.Println(string(msg))
  53. // }
  54. // }()
  55. }
  56. func TestServer_JWT(t *testing.T) {
  57. // config.MustLoadConfig("../etc/websocket.release.yaml")
  58. viper.SetDefault("auth.secret", "a4176e95ad5d4d05b012b81dd5833b40")
  59. var headers = make(Headers)
  60. headers[keys.LocalizationHeader] = ""
  61. headers[keys.AccessTokenHeader] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJmOTU1NGE3OS03N2JiLTRkNTItYmYxMy01MDMyZTg2OTlmNDgiLCJpc19jaGlsZCI6dHJ1ZSwiZmFjdG9yIjoiMzEyNjg3NTMtODU1ZC00NzBmLWFmYzEtZmZhZjk0ZDJmMjJkIn0.HhCi-HpFSVy8UTL7LNUZyrZB25XiDtpu-Nl9-mM2rs0"
  62. headers[keys.SimpleHeader] = ""
  63. s, ok, err := jwtParse(headers)
  64. if !ok {
  65. log.Fatalln(err)
  66. return
  67. }
  68. log.Println(s)
  69. }