Skip to content

[소켓] 유저 티켓 실시간 입장 확인

노경민 edited this page Jul 25, 2022 · 3 revisions

socket.io v4

connection url

https://api.gosrock.link/socket/user

필요 header

ticketUuid : <url 파람 값>

ticketUuid 헤더를 이용해서 바로 해당 ticketUuid room으로 클라이언트를 들어가게합니다. 해당 티켓 아이디의 이벤트만 클라이언트에서 받아보실 수 있습니다.

example

const socket = io("https://api.gosrock.link/socket/user",{
  auth: {
    ticketUuid: <url 파람 >
  }
);

events

enter

socket.on(uuid, (data) => {
  console.log(data);
});

data

  • uuid : 티켓 uuid
  • success : 입장 성공 여부
  • date : 공연 날짜 (YB / OB)
  • ticketStatus : 현재 티켓의 상태 (입장완료/입장대기)
  • message : 메세지
  • name : 유저 이름
  • phoneNumber : 유저 전화번호
  • adminName : 현재 티켓 입장 처리 시도한 어드민

성공시

{
    "uuid": "qPy2wnh7HC-5mU",
    "success": true,
    "date": "YB",
    "ticketStatus": "입장완료",
    "message": "[입장성공] 노경민님이 입장하셨습니다",
    "name": "노경민",
    "phoneNumber": "01021234567",
    "adminName": "노경민"
}

이미 입장 완료되었을 경우

{
    "success": false,
    "message": "[입장실패] - 이미 입장 완료된 티켓입니다",
    "uuid": "fevUTnHlWgXdI-",
    "date": "YB",
    "ticketStatus": "입장완료",
    "name": "갱미니",
    "phoneNumber": "01011111111",
    "adminName": "노경민"
}

공연 날짜 불일치 (YB / OB)

{
    "success": false,
    "message": "[입장실패] - 공연 날짜가 일치하지 않습니다",
    "uuid": "fevUTnHlWgXdI-",
    "date": "YB",
    "ticketStatus": "입장완료",
    "name": "갱미니",
    "phoneNumber": "01011111111",
    "adminName": "노경민"
}

커넥션 에러시 핸들ㄹ링

socket.on("connect_error", (err) => {
  console.log(err instanceof Error); // true
  console.log(err.message); // not authorized
  console.log(err.data); // { content: "Please retry later" }
});