[Socket i.o] Socket i.o Packet 정리

fejigu·2023년 6월 2일
1

Socket.IO

목록 보기
3/3
post-thumbnail



📍드라이버앱에서 사용되는 Socket i.o

→ 드라이버가 사용하게 될 드라이버앱에서는 실시간으로 배달 목록을 업데이트 받아야 하기에 Socket i.o를 사용해야 했다. 클라이언트 측에서 필요한 Socket i.o Packet를 정리해두고자 한다.




1. 출근완료 시점

💡 드라이버는 출근완료가 되는 순간 소켓에 접속해야 한다

1-1.

NameSpaces :/truck
Type :Room 입장 요청
EventName :enterRoom
Process :Driver App → Socket Server
{
	"truckID": "T1"
}

1-2.

NameSpaces :/truck
Room :truckID 값으로 배정된 상태
EventName :orderList
Type :구독
Process :Driver App → Socket Server
[
  {
    orderID: '202305101730C00100',
    orderedMenu: {
      orderList: [
        {
          drinks: {
            Coca: 4.33
          },
          menuName: '깍둑 등심 스테이크',
          quantity: 3,
          toppings: {
            'Bulgogi 5oz': 1,
            Lettuce: 1,
            Rice: 1
          }
        }
      ]
    },
    updatedDeliveryContact: '010-0000-0000',
    updatedAddress: '860 Meridian Bay Ln, Foster City, CA 94404',
    cookingStatus: 0,
    how2Get: 'Leave at the door',
    isMessOrder: true,
    orderedLat: 37.5651985,
    orderedLng: 126.8985079,
    cookingFinishedTime: '18:30'
  } ... // 다수의 주문 리스트 존재
]



2. GPS 업데이트

NameSpaces :/truck
EventName :updateLocation
Type :게시
Process :Driver App → Socket Server (Direct)
{
	"truckID": "T1",
	"lng": -122.13487488200116,
	"lat": 37.45896200477657
}

💡 트럭은 Socket 서버에 접속해서 Room에 들어가 있을테니 바로 관련 이벤트로 위치를 게시하는 쪽이 좋을 것 같다.

  • Driver App → Socket 서버에 연결 후 직접 주제 게시 (람다를 거친 API 요청으로 만들면 너무 빈도수가 높음)



3. 배달완료 클릭

a. 사용자에게 배달완료 됐다고 알려주기

NameSpaces :/client
Room :clientID 값으로 배정된 상태
EventName :orderFinish
Type :게시
Process :App Server → Socket Server (API)

b. 트럭의 주문리스트 갱신시키기

NameSpaces :/truck
Room :truckID 값으로 배정된 상태
EventName :orderList
Type :게시
Process :App Server → Socket Server (API)



4. 퇴근

💡 드라이버는 퇴근이 되는 순간 소켓 연결을 끊어야한다

profile
console.log(frontendjigu( ☕️, 📱); // true

0개의 댓글