coder
coder

Reputation: 6235

How to set up node socket.io

I'm attempting to complete this tutorial and I'm getting this error in the browser console.

index.js:16 Uncaught TypeError: this.io.on is not a function
    at index.js:16

This is the full contents of my index.js.

navigator.getUserMedia(
    { video: true, audio: true },
    stream => {
      const localVideo = document.getElementById("local-video");
      if (localVideo) {
        localVideo.srcObject = stream;
      }
    },
    error => {
      console.warn(error.message);
    }
   );

   this.io.on("connection", socket => {
    const existingSocket = this.activeSockets.find(
      existingSocket => existingSocket === socket.id
    );

    if (!existingSocket) {
      this.activeSockets.push(socket.id);

      socket.emit("update-user-list", {
        users: this.activeSockets.filter(
          existingSocket => existingSocket !== socket.id
        )
      });

      socket.broadcast.emit("update-user-list", {
        users: [socket.id]
      });
    }
  })

What am I missing? I know that 'this' should refer to some enclosing object but what?

Upvotes: 0

Views: 60

Answers (1)

Ivan Kolyhalov
Ivan Kolyhalov

Reputation: 1002

Checkout tutorial files list

The part you are referrring to is in socket-connection.ts file, not index.js as author refers.

Or it may be a typescript abrakadabra :)

P.S. and you should also remember that "this" construct is always inside a function (but not in arrow function).

Upvotes: 1

Related Questions