Skip to content

[소켓] 어드민 티켓 입장 실시간 확인

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

socket.io v4

connection url

https://server-domain.com/socket/admin

필요 header

token: <로그인시 발급받은 어드민 토큰>

example

const socket = io("https://api.gosrock.link/socket/admin",{
  auth: {
    token: <adminAccessToken>
  }
);

events

enter

socket.on("enter", (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" }
});