Здравствуйте, появилась проблема с сокетами.
Немного не понимаю что у меня за проблема.
Два приложения работают на разных портах, 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')
}
},
........
Вроде все сделал правильно, но