Vuejs + golang как подключиться к websocket?

Здравствуйте, появилась проблема с сокетами.
Немного не понимаю что у меня за проблема.
Два приложения работают на разных портах, api(Golang приложение) на :8081 порту, а vuejs приложение в dev режиме(vue-cli webpack-simple) на :8080 порте.
Пытаюсь отправить запрос от vuejs приложения на ws://localhost:8081, но появляется вот такая ошибка

WebSocket connection to 'ws://localhost:8081/ws' failed: Error during WebSocket handshake: Unexpected response code: 403


С CORS знаком, использую labstack echo.
Вот код:
golang main.go:

package main

import (
	"fmt"

	"github.com/gorilla/websocket"
	"github.com/labstack/echo"
	"github.com/labstack/echo/middleware"
)

var (
	upgrader = websocket.Upgrader{}
)

func hello(c echo.Context) error {
	ws, err := upgrader.Upgrade(c.Response(), c.Request(), nil)
	if err != nil {
		return err
	}
	defer ws.Close()

	for {
		// Write
		err := ws.WriteMessage(websocket.TextMessage, []byte("Hello, Client!"))
		if err != nil {
			c.Logger().Error(err)
		}

		// Read
		_, msg, err := ws.ReadMessage()
		if err != nil {
			c.Logger().Error(err)
		}
		fmt.Printf("%s\n", msg)
	}
}

func main() {
	e := echo.New()
	e.Use(middleware.Logger())
	e.Use(middleware.Recover())

	e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
		AllowOrigins:     []string{"*"},
		AllowCredentials: true,
		AllowHeaders:     []string{echo.HeaderOrigin, echo.HeaderContentType, echo.HeaderAccept},
	}))

	e.GET("/ws", hello)

	e.Logger.Fatal(e.Start(":8081"))
}

(Код простой, но я пока пытаюсь решить проблему с подключением)

vuejs приложение:
export default {
    data: function () {
      return {
        seen: false,
        ws: null,
      };
    },
    created: function () {
      var self = this;
      this.ws = new WebSocket('ws://localhost:8081/ws');
      this.ws.addEventListener('message', function (e) {
        var msg = JSON.parse(e.data);
      });
      this.ws.onopen = function () {
        console.log('Connected')
      }

    },
........


Вроде все сделал правильно, но
7079bbd30f67426a99a95ee3d6a1021f.png
  • Вопрос задан
  • 2189 просмотров
Решения вопроса 1
hitakiri
@hitakiri
Когда интересовал подобный вопрос. Пользовался вот этим уроком.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Попробуйте посмотреть здесь пример: https://github.com/orderbynull/lottip/blob/master/...
Возможно вы неверно запускаете вебсокет-сервер
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы