要回复http请求,我们只需使用return" content"在方法函数中。
但是对于一些关键任务用例,我想确定http 200 OK响应已交付。有什么想法吗?
答案 0 :(得分:10)
HTTP
协议无法正常运行。如果您需要确认,则需要客户端向您发送确认。
或者您应该考虑实现双向套接字(示例库为socket.io),客户端可以在其中发送ACK。如果它是关键任务,那么请不要仅仅http
使用websockets
您也可以使用AJAX回调来收集确认。创建此类解决方案的一种方法是为每个请求生成UUID,并作为标题
的一部分返回$ curl -v http://domain/url
....
response:
X-ACK-Token: 89080-3e432423-234234-23-42323
然后客户再次拨打电话
$ curl http://domain/ack/89080-3e432423-234234-23-42323
因此服务器会知道客户端已经确认了给定的响应。但是你不能强制执行自动确认,它仍然在客户端发送它,如果它们没有,你就无法知道
PS:UUID在这里不是实际的UUID,只是例如作为随机数共享
答案 1 :(得分:1)
看看微软asynchronous server socket。
异步服务器套接字需要一种方法来开始接受来自网络的连接请求,一种回调方法来处理连接请求并开始从网络接收数据,一种回调方法来结束接收数据(这是您的客户端可以响应所做的HTTP请求的成功或失败。
答案 2 :(得分:1)
使用HTTP是不可能的,如果出于某种原因你不能使用套接字,因为你的实现需要HTTP(比如API),你必须承认你的客户端的超时策略。
这取决于你想要处理的案件数量,但是例如你可以陈述这样的事情:
同样,这在很大程度上取决于您的业务/技术要求。因为您甚至可以获得两个或更多连续的超时句柄循环。
希望你有个主意。
答案 3 :(得分:0)
因为@ tarun-lalwani已经编写过的http协议不是为此而设计的。您可以做的是让应用程序创建一个文件,并在200响应远程文件的存在和时间之后检查程序。这意味着每200个响应需要另一个检查文件请求