При отправке сообщения с помощью SocketIO происходит сбой, не обновляется окно или другая сторона - PullRequest
0 голосов
/ 29 января 2020

Я не могу отправить сообщение с помощью socketio. Вот функция, которую я использую, но не могу отправлять сообщения.

Ниже приводится последовательность операций, которую я использую, событие

workspace_room_join
get_user_room
room_join
message

Теперь я не могу отправить сообщение. Как правильно отправить сообщение?

Ниже функция кода для отправки сообщения

sendUsingSocket = (messages) => {
    const workspace_id = localStorage.getItem('workspace_id');
    const payload = {
      room_id:this.props.socket_details.room_id,
      isChannel:false,
      workspace_id:workspace_id,
      chat: messages,
      sender_id: this.state.sender_to_receiver_details.sender_id,
      receiver_id: this.state.sender_to_receiver_details.receiver_id,
    }
      socket.emit("message", payload);
}

и вот компонент, который я передаю

 <Chat sendUsingSocket={this.sendUsingSocket} />

А вот мой компонент смонтировал

  componentDidMount() {
    const token = localStorage.getItem("Auth");
    const userInfo = JSON.parse(localStorage.getItem("getUserInfoFromLocalStorage"));
    const user_id = userInfo._id
    if(token !== undefined){
      socket.emit("workspace_room_join",{
        workspace_id:user_id,
        token:token
      })
      socket.on("workspace_room_join",(data) => {
      })
    }
    socket.on("get_user_room", (data) => {
      this.props.actions.savingRoomId(data)
    })
    socket.on("room_leave", () => {
        socket.emit("room_join", {
            room_id: this.props.socket_details.room_id,
        })
    })
    socket.on("get_user_room", (data) => {
      socket.emit("room_join", {
        room_id: data.room_id,
    })
    });
    socket.on("message",(data) => {
     const message_details =  data.chatData
    this.setState({
      listen_messages:message_details
    })
    })
    localStorage.setItem('workspace_id',this.props.match.params.id)
    this.props.actions.getByWorkspaceId({ id: this.props.match.params.id });
    let {actions} = this.props;
    actions.fetchChannelList()
    actions.fetchUserlist()
  }

Я не могу отправлять сообщения, как это исправить?

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