@valerafedorchenko

Почему socket.io не приимает данные?

Здравствуйте, возникла потребность в использовании go-socket.io.
Все вроде сделал правильно, но данные не доходят.
Роут
r.Handle("/socket.io/", sio.CreateSocketIoServer())


Функция CreateSocketIoServer()
func CreateSocketIoServer() *socketio.Server {
	server, err := socketio.NewServer(nil)
	if err != nil {
		log.Fatal(err)
	}

	server.On("connection", func(so socketio.Socket) {
		log.Println("on connection")
		so.Join("chat")
		so.On("send", func(msg string) {
			log.Println(msg)
		})

		so.On("disconnection", func() {
			log.Println("on disconnect")
		})
	})

	server.On("error", func(so socketio.Socket, err error) {
		log.Println("error:", err)
	})

	return server
}


Форма
<div class="chat-foot">
                    <form id="SendMs" action="#" method="post">
                        <input type="text" id="msg" name="text" placeholder="Введите сообщение" />
                    </form>
                </div>

Подключил

И сам js
var socket = io('');
        $('#SendMs').submit(function() {
           var msgField = $('#msg'),
           data = { msg: msgField.val() };
           socket.emit('send', data);
          console.log(data);
        });


При заходе на страницу чата, в консоле приложения отображаться
on connection


При отправки формы, страница перезагружается и в console.log отображаться

Object { msg="fggfhhfjjtfhk"}

В консоле приложения - пусто и нету никаких данных которые я отправил и из-за того что страница обновилась в консоле

2016/07/29 05:50:32 on disconnect
2016/07/29 05:50:33 on connection

Подскажите пожалуйста, почему обновляться страница и не приходят данные?
Заранее благодарен.
  • Вопрос задан
  • 230 просмотров
Пригласить эксперта
Ответы на вопрос 2
VGrabko
@VGrabko
Golang, Php, Js
чёрт ну и синтаксис.
Юзай https://github.com/gorilla/websocket
Ответ написан
alex-dodoka
@alex-dodoka
Да вот просто нет слов. Junior ja!
Потому что при отправки данных страница по дефорту перегружается. Когда происходит перезагрузка страницы, то сокет рвет текущее соединение и тоткрывает новое с новым soccketId. Т.е. данные, которые ты отправил из форму с фронта ушли, но потому за сервере соединение разорвалось из-за перезагрузки. Соответственно данные твои ушли в никуда.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы