Socket.io-練習(emit)


Client

function backendDone(msg) {
  console.log(`The backend says: `, msg);
}

function handleRoomSubmit(event) {
  event.preventDefault();
  const input = form.querySelector("input");
  socket.emit("enter_room", input.value, backendDone);
  input.value = "";
}
=>emitは、既存のWebSocketでsendのような接続が発生した後に発生する関数です.複数のパラメータを送信できます.最後の関数は、バックエンドで実行ポイントを決定できる関数であり、パラメータを受信することもできます.

Server

const wsServer = SocketIO(httpServer);

wsServer.on("connection", (socket) => {
  socket.on("enter_room", (roomName, done) => {
    console.log(roomName);
    setTimeout(() => {
      done("hello from the backend");
    }, 15000);
  });
});
=>接続が発生し、emitが受け入れられた後、15秒後にパラメータをフロントエンドに渡します.done関数は最終的にフロントエンドで実行されるため、セキュリティの問題もありません.

付随説明


=>サーバから送信されたメッセージは、クライアントがonで受信することもできます.