【发布时间】:2023-03-11 21:57:02
【问题描述】:
我正在尝试将 C 中的 libcurl 库与 pushbullet api 一起使用。我正在尝试连接到https://stream.pushbullet.com/streaming/ 的流。问题是一旦接收到任何数据时调用回调函数,连接就会关闭。我想让它无限期地运行,并让它在每次接收到新数据时调用回调函数。
这是我试过的代码
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int getwss_cb(char *data) {
printf("Received data: %s\n", data);
}
int getwss(void) {
CURL *easyhandle = curl_easy_init();
curl_easy_setopt(easyhandle, CURLOPT_URL, "https://stream.pushbullet.com/streaming/<access-token>");
curl_easy_setopt(easyhandle, CURLOPT_WRITEFUNCTION, getwss_cb);
curl_easy_perform(easyhandle);
return 0;
}
基本上我需要 getwss() 函数在运行 getwss_cb() 之后继续运行
【问题讨论】:
-
无限期是什么意思?你的最终目标是什么?
-
我需要它继续运行,以便每次流中有新内容时都会调用 getwss_cb。我使用的 url 将以通知的形式发送新数据,每次有这样的通知时我都需要一个函数来运行
-
您确定此 API 端点是正确的套接字吗?我不知道这个 API,但似乎这个端点只是用于生成一个访问令牌以传递给另一个套接字。
-
不,我在代码中使用我的个人访问令牌来访问端点。返回的实际数据是一个小的 JSON 字符串,例如
{"Type": "nop"} -
@AustinBrunkhorst 我已经编辑了问题以使其更清楚,希望您现在可以理解我的问题
标签: c libcurl pushbullet