Comments (3)
Bot detected the issue body's language is not English, translate it automatically.
Title: Asynchronous http request?
Hello, thanks for open source, I learned a lot.
There is currently a thorny problem. My program receives external input. Each input corresponds to an http request. The server response is relatively slow. Synchronous requests will cause the program io to block for 500ms. There may be other requests to process during these 500ms. Or other operations need to be performed, so I hope that the http request operation is asynchronous.
Asynchronous means that I hope that my http request function can return immediately. When the http request returns data (json will be returned after 500ms), the returned json data will be processed through the pre-registered callback.
The desired function signature is this:
void http_request(const std::string & request_url, const std::string & header, std::function<void<const rapidjson::Document>> & func) {
}
There has been some research before, but the coding power is insufficient and has not been solved. It should be implemented using coroutines + http network operations. I wonder if you can give me some guidance? grateful
ps. Pay more attention to performance and speed
from tbox.
那就用协程呗 https://github.com/tboox/tbox/blob/master/src/demo/coroutine/stream.c
from tbox.
Bot detected the issue body's language is not English, translate it automatically.
Then use coroutine https://github.com/tboox/tbox/blob/master/src/demo/coroutine/stream.c
from tbox.
Related Issues (20)
- 通过xrepo引入tbox 1.7.4,xmake config在wasm平台编译报错 HOT 6
- error: implicit declaration of function 'CancelIoEx'; did you mean 'CancelIo' HOT 2
- 在Gitee Go的linux平台上构建链接出错,缺少add_syslinks("m") HOT 10
- file_info on Window does not support symbol link HOT 4
- WASM: file system support HOT 8
- The ARM assembly code of tbox is not compatible with Apple M1 HOT 12
- 启用 openssl 编译错误 HOT 8
- 开启force-utf8选项后,tb_file_init在mingw平台下的路径编码与Windows下不一致 HOT 9
- Implement `SortedDictionary` / `std::map` / `GTree` equivalent HOT 4
- Does TBOX also abort in out-of-memory situations like GLib? HOT 1
- Getting the current directory of a file returns inconsistent results on macOS HOT 5
- macOS M1安装tbox报arm相关错误 HOT 7
- Can't install tbox on Mac HOT 1
- Spawn a process in Qt app without the command prompt flash up on the screen. HOT 1
- tb_backtrace_symbols_name不同平台的返回值格式应该一致 HOT 1
- 建议将event的现有实现稍微增强一下 HOT 4
- tb_option_done 只认 -f=a.txt 这种形式,却不认 -f a.txt 这种形式 HOT 7
- platform/posix/semaphore.c 中的 tb_semaphore_wait 实现存在bug HOT 2
- round相关函数的实现有问题 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tbox.