简体   繁体   English

如何从 API 获取数据,其中 stream 实时数据

[英]How to fetch data from an API which stream real time data

I want to use this API here,我想在这里使用这个 API,

https://developer.sportradar.com/docs/read/basketball/NCAA_Mens_Basketball_v7#tournament-summary-seeded-tournaments-only https://developer.sportradar.com/docs/read/basketball/NCAA_Mens_Basketball_v7#tournament-summary-seed-tournaments-only

This endpoint retrieves detailed, real-time information on every game event.此端点检索每个游戏事件的详细实时信息。 I am trying to implement this in node JS.我正在尝试在节点 JS 中实现这一点。 How can I do this?我怎样才能做到这一点? This API redirect to different URL whenever we hit it.每当我们点击它时,这个 API 都会重定向到不同的 URL。 Is there any way to do parse data from this?有什么办法可以从中解析数据吗? It returns response like this,它返回这样的响应,

{
   "heartbeat":{
      "interval":5000
   }
}

{
   "payload":{
      "game":{
         "id":"0db78438-9663-470f-b3ae-1f9106298e47",
         "status":"inprogress",
         "coverage":"full",
         "scheduled":"2021-02-27T17:00:00+00:00",
         "home":{
            "name":"Hoosiers",
            "market":"Indiana",
            "id":"c3f0a8ce-af67-497f-a750-3b859376b20a",
            "points":57,
            "rank":0,
            "bonus":true,
            "remaining_timeouts":2
         },
         "away":{
            "name":"Wolverines",
            "market":"Michigan",
            "id":"bdc2561d-f603-4fab-a262-f1d2af462277",
            "points":73,
            "rank":3,
            "remaining_timeouts":1
         }
      },
      "event":{
         "id":"a2b43bd2-1b79-4823-b76c-21a09eb1adea",
         "event_type":"rebound",
         "sequence":1614445806980,
         "clock":"18:32",
         "clock_decimal":"18:32",
         "updated":"2021-10-26T16:29:17Z",
         "created":"2021-02-27T17:10:06Z",
         "description":"Hunter Dickinson defensive rebound",
         "home_points":57,
         "away_points":73,
         "attribution":{
            "name":"Wolverines",
            "market":"Michigan",
            "id":"bdc2561d-f603-4fab-a262-f1d2af462277",
            "team_basket":"right"
         },
         "location":{
            "coord_x":102,
            "coord_y":236,
            "action_area":"backcourt"
         },
         "possession":{
            "name":"Wolverines",
            "market":"Michigan",
            "id":"bdc2561d-f603-4fab-a262-f1d2af462277"
         },
         "period":{
            "id":"1f18ca8c-6a96-43f7-b68c-4d1b333e059c",
            "number":1,
            "sequence":1,
            "type":"half"
         },
         "on_court":{
            "home":{
               "name":"Hoosiers",
               "market":"Indiana",
               "id":"c3f0a8ce-af67-497f-a750-3b859376b20a",
               "players":[
                  {
                     "full_name":"Aljami Durham",
                     "jersey_number":"1",
                     "id":"6897db83-b25f-4c54-832a-0ff0c3cb86ff"
                  },
                  {
                     "full_name":"Rob Phinisee",
                     "jersey_number":"10",
                     "id":"481ffe40-392b-4a1b-89ec-0d9453495639"
                  },
                  {
                     "full_name":"Jerome Hunter",
                     "jersey_number":"21",
                     "id":"681d2cc6-24b9-4f38-8564-8c0b210a9535"
                  },
                  {
                     "full_name":"Trayce Jackson-Davis",
                     "jersey_number":"23",
                     "id":"c468bdc9-4778-496a-985e-7911dc6a1ff2"
                  },
                  {
                     "full_name":"Race Thompson",
                     "jersey_number":"25",
                     "id":"ed56bced-c614-4eeb-85ee-812edb594752"
                  }
               ]
            },
            "away":{
               "name":"Wolverines",
               "market":"Michigan",
               "id":"bdc2561d-f603-4fab-a262-f1d2af462277",
               "players":[
                  {
                     "full_name":"Hunter Dickinson",
                     "jersey_number":"1",
                     "id":"1d0c6b20-76b7-4a82-ae1d-20b78136525b"
                  },
                  {
                     "full_name":"Isaiah Livers",
                     "jersey_number":"2",
                     "id":"34736ed7-c86a-472c-8c1c-683002de6487"
                  },
                  {
                     "full_name":"Mike Smith",
                     "jersey_number":"12",
                     "id":"92f6b357-f6cb-40a5-8893-329425fff5ba"
                  },
                  {
                     "full_name":"Franz Wagner",
                     "jersey_number":"21",
                     "id":"ec3df621-2a9d-483c-9064-11b44d8841a9"
                  },
                  {
                     "full_name":"Eli Brooks",
                     "jersey_number":"55",
                     "id":"8869c334-f08c-4ed9-931c-9d9c657cb7bc"
                  }
               ]
            }
         },
         "statistics":[
            {
               "type":"rebound",
               "rebound_type":"defensive",
               "team":{
                  "name":"Wolverines",
                  "market":"Michigan",
                  "id":"bdc2561d-f603-4fab-a262-f1d2af462277"
               },
               "player":{
                  "full_name":"Hunter Dickinson",
                  "jersey_number":"1",
                  "id":"1d0c6b20-76b7-4a82-ae1d-20b78136525b"
               }
            }
         ]
      }
   },
   "locale":"en",
   "metadata":{
      "league":"NCAAM",
      "match":"sd:match:0db78438-9663-470f-b3ae-1f9106298e47",
      "status":"inprogress",
      "team":"sd:team:bdc2561d-f603-4fab-a262-f1d2af462277",
      "players":"sd:player:6897db83-b25f-4c54-832a-0ff0c3cb86ff,sd:player:481ffe40-392b-4a1b-89ec-0d9453495639,sd:player:681d2cc6-24b9-4f38-8564-8c0b210a9535,sd:player:c468bdc9-4778-496a-985e-7911dc6a1ff2,sd:player:ed56bced-c614-4eeb-85ee-812edb594752,sd:player:1d0c6b20-76b7-4a82-ae1d-20b78136525b,sd:player:34736ed7-c86a-472c-8c1c-683002de6487,sd:player:92f6b357-f6cb-40a5-8893-329425fff5ba,sd:player:ec3df621-2a9d-483c-9064-11b44d8841a9,sd:player:8869c334-f08c-4ed9-931c-9d9c657cb7bc",
      "event_type":"rebound",
      "event_category":"shot",
      "locale":"en",
      "operation":"update",
      "version":"v7"
   }
}

{
   "heartbeat":{
      "interval":5000
   }
}

you can use interval to get the data from API and then passing the data to websocket server您可以使用间隔从 API 获取数据,然后将数据传递给 websocket 服务器

Eventsource if event is triggered by your API.如果事件由您的 API 触发,则为事件源。https://developer.mozilla.org/en-US/docs/Web/API/EventSourcehttps://developer.mozilla.org/en-US/docs/Web/API/EventSource

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM