From 550a65b083b806b84656bf9661b13f7b94bd8b3b Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Fri, 31 Mar 2023 23:15:20 +0000 Subject: [PATCH] added early roomId --- .../app/src/pages/music/spaces/[roomId].jsx | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 packages/app/src/pages/music/spaces/[roomId].jsx diff --git a/packages/app/src/pages/music/spaces/[roomId].jsx b/packages/app/src/pages/music/spaces/[roomId].jsx new file mode 100644 index 00000000..2ed2a52e --- /dev/null +++ b/packages/app/src/pages/music/spaces/[roomId].jsx @@ -0,0 +1,75 @@ +import React from "react" +import config from "config" +import { io } from "socket.io-client" +import SessionModel from "models/session" + +const remoteAddress = config.remotes.musicSpacesApi + +export default class MusicSpaceRoom extends React.Component { + state = { + socket: null, + connecting: true, + connectionEnd: false, + roomInfo: null, + } + + joinEventRoom = async () => { + console.log("Joining room", this.props.params.roomId,) + + const roomNs = `/room/${this.props.params.roomId}` + + const socket = io(remoteAddress, { + transports: ["websocket"], + autoConnect: false, + }) + + socket.auth = { + token: SessionModel.token, + } + + socket.on("connect_error", (err) => { + this.setState({ connectionEnd: true }) + + if (err.message === "auth:token_invalid") { + console.error("Invalid token", err) + } else { + console.error("Connection error", err) + } + }) + + socket.on("connect", () => { + socket.emit("join", { + room: roomNs, + type: "spotify", + }, (error, info) => { + if (error) { + this.setState({ connectionEnd: true }) + return console.error("Error joining room", error) + } + + this.setState({ + connecting: false, + roomInfo: info, + }) + }) + }) + + socket.onAny((event, ...args) => { + console.log(event, args) + }) + + socket.connect() + + this.setState({ socket }) + } + + componentDidMount() { + this.joinEventRoom() + } + + render() { + return
+ {this.props.params.roomId} +
+ } +} \ No newline at end of file