Приложение SocketIO ведет себя странно на Heroku, но работает локально - PullRequest
0 голосов
/ 17 октября 2019

У меня есть журналы на сервере и в клиентских приложениях.

Компонент генерирует событие SocketIO при нажатии. Теперь первый клиент (первое окно, открытое для страницы) щелкает компонент, и я вижу журналы на сервере о том, что событие было получено, и на клиенте, что событие было отправлено.

Теперь забавно то, что когда я дублирую вкладку, сервер регистрирует нового пользователя (соединение через сокет успешно), но когда я щелкаю компоненты, то не появляется сообщение о том, что событие было отправлено, а компонент делаетсменить цвет.

Я отправляю событие SocketIO и console.logging сообщение в обратном вызове setState.

Данный компонент является ячейкой.

Это мой код:

handleOnCellClick() {
    if (!this.state.alive) {
      // if dead then proceed add some color to the Cell's life :) and notify server of event
      console.log("cell wasn't alive");
      this.setState(
        {
          r: this.props.defaultRandomColorProps[0],
          g: this.props.defaultRandomColorProps[1],
          b: this.props.defaultRandomColorProps[2],
          alive: true
        },
        () => {
          this.props.socketProps.emit("cellChanged", {
            key: [this.props.cell_row_index, this.props.cell_col_index],
            color: { r: this.state.r, g: this.state.g, b: this.state.b }
          });
          console.log("emitted");
        }
      );
    }
  }

На самом деле, пожалуйста, убедитесь в этом сами на secret-forest-30430.herokuapp.com / . Перейдите на вкладку «Игра». Содержит «доску» компонентов Cell.

Снова я должен повторить, что все это работает локально. Вот ссылка на проект на github: https://github.com/Dobermensch/ExpressTest.git

Есть идеи, что происходит?

TL; DR : обратный вызов setState не работает?

РЕДАКТИРОВАТЬ : для шага назад я пытаюсь создать многопользовательскую игру жизни Конвея

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...