WebSocket 연결

KAS가 제공하는 Klaytn Node API와 동일한 기능을 인증 절차 없이 제공합니다. WebSocket에 연결해 API를 실행할 수 있습니다.

WebSocket 이용하기

이 페이지에서는 Public Node API에서 지원하는 WebSocket 기능을 살펴봅니다. KAS가 지원하는 API를 WebSocket에 연결해 호출해보고, 그 결과를 확인할 수 있습니다. Node API와 달리 Public Node API에서는 네트워크를 x-chain-id로 구분하지 않습니다. KAS Credential을 추가할 필요도 없습니다. 대신 사용 환경에 따라 도메인을 설정합니다. Klaytn 메인넷은 cypress, 테스트넷은 baobab을 입력하세요. 이 페이지 예제는 모두 baobab 환경에 연결합니다.

wscat --connect "wss://public-node-api.klaytnapi.com/v1/baobab/ws"

klay_blockNumber

Node API로 여러분 계정의 잔고, 계정 키 타입 등 계정에 관한 가장 최신 정보를 확인하려면 Klaytn 상에 있는 가장 최신 블록의 블록 번호를 알아야 합니다. 이를 위해 다음과 같이 WebSocket에 연결해 최신 블록 번호를 요청합니다.

// Request
wscat --connect "wss://public-node-api.klaytnapi.com/v1/baobab/ws"
> {"jsonrpc":"2.0", "id": 0.43, "method": "klay_blockNumber", "params": [ ] }

// Response
< {"jsonrpc":"2.0","id":0.43,"result":"0x4d418ff"}

API 호출에 관한 더 자세한 내용은 다음을 확인하십시오.

klay_subscribe

WebSocket에 연결해 특정 이벤트에 대한 구독을 생성합니다. 생성하는 구독마다 ID를 반환하며, 구독하는 모든 이벤트의 데이터와 구독 ID를 알림으로 전송합니다. 파라미터 값으로 "NewHeads"를 입력하면 블록이 추가될 때마다 알림을, "logs"를 입력하면 새 블록에 포함된 로그의 알림을 발생합니다. WebSocket 연결이 60초 이후에 끊기면 이 연결에서 생성한 구독 또한 연결이 끊김과 동시에 모두 제거됩니다.

아래 예제는 파라미터에 "NewHeads"를 입력한 요청과 응답입니다. "logs"를 입력하려면 klay_newFilter에서 필요한 객체를 확인하세요.

// Request
wscat --connect "wss://public-node-api.klaytnapi.com/v1/baobab/ws"
> {"jsonrpc":"2.0", "id": 1, "method": "klay_subscribe", "params": ["newHeads"]}

// Response
< {"jsonrpc":"2.0","id":1,"result":"0x902e07c8168b5d06b29fa60f2eaa7630"}
< {"jsonrpc":"2.0","method":"klay_subscription","params":{"subscription":"0x902e07c8168b5d06b29fa60f2eaa7630","result":{"parentHash":"0xd9e0ac7ba8dc39562fa511bfd8b0972024105f1ccdcd24bf5cf7f961ac630b7b","reward":"0xa86fd667c6a340c53cc5d796ba84dbe1f29cb2f7","stateRoot":"0x20f866c3a42228d268a11abaf989ae8c95050cae25031dbe5a3833e3c7f672f3","transactionsRoot":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","receiptsRoot":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","blockScore":"0x1","number":"0x4d41913","gasUsed":"0x0","timestamp":"0x61e7befb","timestampFoS":"0x0","extraData":"0xd883010703846b6c617988676f312e31352e37856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b84164cd25226ad8fb9d70f9ad29ca5e595d5ceaa2e6fa4e1cb58b082d541aa7cf8d587cca8dacd2809bf6bbc9a12ce1c759ffa3378ee06de594449bd921c9f52fad01f8c9b841284bcf0b9c8c315bb77071f0e275bf1491bf7d101bdd355dae35394e95346265171a15ce72417ecc6d13769101af7fe5637cedb149c19f46d13ca850d1dd415b01b841de55d3afe8c6be9a0583c1dc5b330f0992498b2d3103c935ee88e3e6f098526a3d17c8be0223fa2dc7f81f8dda71bdca248b3b9a40cdab708035265fe6ef3b7601b841144fc3a5d71601183cb8af4f173837af0fa75d47d4cba16ab0d2a7f3daa3234b7bdd52cc14e5a673e1aaf00a650d6c7359cf26697d0dfb911105be04e5cbe09600","governanceData":"0x","hash":"0xda0c5d55d4ce2902e3967e33a5b12e2e33e2b3e8e4a8e8afe95abfdcd0c12468"}}}
< {"jsonrpc":"2.0","method":"klay_subscription","params":{"subscription":"0x902e07c8168b5d06b29fa60f2eaa7630","result":{"parentHash":"0xda0c5d55d4ce2902e3967e33a5b12e2e33e2b3e8e4a8e8afe95abfdcd0c12468","reward":"0xb2bd3178affccd9f9f5189457f1cad7d17a01c9d","stateRoot":"0x97614a5c4ced0651ad6aad95e902a9e339e5f0c9432d160a041ba50a27cea50d","transactionsRoot":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","receiptsRoot":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","blockScore":"0x1","number":"0x4d41914","gasUsed":"0x0","timestamp":"0x61e7befc","timestampFoS":"0x0","extraData":"0xd883010703846b6c617988676f312e31352e37856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b841248b924354b2dcfc7bdbe6d68e7179cf9fcdda9674cc88d803fc2feb2e0cc76d4c8d8c8aaba2eb6264ea7b4a886ffdbec7b26a6050409c54ff1e079df2cce75f00f8c9b841693c7a16935a600c84561002dbca03da61f1671ea5823c671162baa95acfea143c942b0602e43629d27bffee7d72f53c071a00387df1f9553f4f1dc265f23c4500b841b5ce1989697c63e294ddac38746c84f2ba135e95fa30a874a306b4d23c9304db1225011ff3c3b738cf0f5477526a4dc3729f5dc600e1848f9e39e66be2099bc401b841eea1fcf44edbe41a0c97b352bff4cb5169d1018bec32f8f546304c5efa20eae2188b8160daed4c54f741fd5925a1a3861da3dfd8bcebf764e71b4b343bb6ff1701","governanceData":"0x","hash":"0xd7063d0f9c5d11e37fd991bcd60b49ce9f190824f54110bf526ad27415b09fa6"}}}

API 호출에 관한 더 자세한 내용은 다음을 확인하십시오.

klay_unsubscribe

klay_subscribe를 실행해 구독 중이던 특정 ID의 이벤트 알림을 더이상 받지 않으려면 klay_unsubscribe를 실행해 구독을 취소합니다. 구독 취소할 ID 값을 파라미터로 입력해 ID를 특정합니다. 구독이 정상 취소되면 응답 결과에 true를 반환합니다.

// Request
wscat --connect "wss://public-node-api.klaytnapi.com/v1/baobab/ws"
> {"jsonrpc":"2.0", "id": 1, "method": "klay_unsubscribe", "params": ["0x902e07c8168b5d06b29fa60f2eaa7630"]}

// Response
< {"jsonrpc":"2.0","id":1,"result":true}

API 호출에 관한 더 자세한 내용은 다음을 확인하십시오.

Last updated

Was this helpful?