我正在开发一个HttpListener()广泛使用的应用程序.到目前为止,我一直在实际网络上进行所有测试,但我现在对此非常厌恶.
我尝试了通常的嫌疑人(localhost,127.0.0.1)和正确的端口,但没有任何反应.
Windows中的某个设置是否存在?(很明显我通常是一个*nix男孩吗?)
我正在通过环回接口测量Windows上的TCP/IP连接的延迟,并且从收到的消息发送到响应时获得大约4ms的时间.
出于RPC目的,在TCP/IP之上有一个TCF层.除了TCF成帧之外,发送和接收的消息仅包含单个字符作为有效负载.
处理命令的"服务器"使用boost asio在C++中实现."client"发送命令是一个使用Python TCF参考实现的Python脚本.
我已经尝试将套接字选项设置为TCP_NODELAY以禁用Nagle算法并尝试使用各种缓冲区来实现套接字,但是往返时间仍然保持在4ms左右.我原以为它要低一点.
在C++方面进行分析表明,它花费大约50%的执行时间等待命令,因此下一步将尝试用C++实现替换python脚本,但知道一个人可以期待什么会很好环回接口的往返时间.
这个问题:
启用TCP_NODELAY的Linux Loopback性能
是相关的,但并没有完全回答我的问题.
我有3个型号.2个资源模型,account(id, name)以及widget(id, name)1个映射模型,用于在两者之间进行映射widget_to_account(id, account_id, widget_id),以告知帐户可以访问哪些小部件,可以这么说.
在使用http://loopback.io/doc/en/lb3/HasManyThrough-relations.html中的指南说明其JSON中的模型之间的关系时,RESTful请求如"获取帐户id的小部件= 1",例如,工作得很好.
GET /accounts/1/widgets 产生帐户1具有的小部件,产生一个小部件数组:
[
{
"id": 1,
"name": "wg_user_mgr"
},
{
"id": 2,
"name": "wg_desc"
}
]
Run Code Online (Sandbox Code Playgroud)
这一切都很好.
但是,我想将此小部件数组结果与GET返回的帐户对象一起附加到account模型中?Loopback文档表明这是通过使用include带有请求的关键字来完成的,如下所示:
GET /accounts/1?filter[include]=widgets希望返回一个account带有允许小部件的模型:
{
"id": 1,
"name": "Account1Name",
"widgets": [
{
"id": 1,
"name": "wg_user_mgr",
"display_name": "User Manager"
},
{
"id": 2,
"name": "wg_desc",
"display_name": "Description"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是,具有该请求的回送实际返回的是:
{
"id": 1,
"name": "Account1Name",
"widgets": []
}
Run Code Online (Sandbox Code Playgroud)
空小部件数组!当我查看环回SQL调试时,我看到它确实 …
我目前正在尝试使用环回生成一个 API,它允许我发送手写字符的 28x28 图像文件,并让张量流网络处理该图像,并返回网络认为该字符是什么的预测。
然而,为了做到这一点,我需要能够发送要处理的图像,而不必先将文件保存在服务器上,并且无法找到如何做这样的事情。像loopback-component-storage这样的模块很棒,但我不想使用一个路由来发送图像,使用另一个路由来处理该图像,然后使用第三个路由来删除包含该图像文件的容器,从而使该过程需要三个不同的请求。
因此,归根结底,有什么方法可以将图像附加到请求中,其中 API 可以读取和解释流,而不必先将文件的副本保存在服务器上的其他位置?
提前致谢
我正在Loopback 4中工作,并且陷入了创建POST方法的困境,以便客户端可以调用此方法并上传multipart / form-data。我读了一些例子:
但是,看起来它们不适合环回4。
您能帮我通过Loopback4中的POST方法上传多部分/表单数据吗?
我使用“lb4 application_name”命令创建了一个环回 4 应用程序。运行“npm start”后,显示“lb-clean”命令未找到错误。我的节点版本是16.13.2,环回版本是4.0.0。
我正在尝试在C中设置回送套接字,但没有任何效果。我正在尝试制作一个函数,该函数使用环回地址打开套接字,将数据发送到套接字,然后从另一个函数读取数据,但是没有任何效果。我相信我不知道如何使用与连接有关的功能。到目前为止,这是我完成的工作:
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <stdlib.h>
#include <ctype.h>
#include <signal.h>
#include <iostream>
#include <cerrno>
#include <pthread.h>
int internal_s;
void function1(){
if ((internal_s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
perror_exit("socket");
/* Find server address */
struct sockaddr_in loopback;
struct sockaddr *serverptr = (struct sockaddr*)&loopback;
/*Convert port number to integer*/
loopback.sin_family = AF_INET; /* Internet domain */
loopback.sin_addr.s_addr=htonl(INADDR_LOOPBACK);
loopback.sin_port=htons(10000);
/* Initiate connection */
if (bind(internal_s,serverptr, sizeof(loopback))<0)
perro("bind");
int test=1;
err=write(internal_s,&test,sizeof(int));
if(err<0)
perror(write);
} …Run Code Online (Sandbox Code Playgroud) 仅出于开发目的,我正在我的Windows 10笔记本电脑上本地测试UWP(通用Windows平台)客户端应用程序,其中运行WebAPI服务.
默认情况下,WinRT应用程序无法连接到localhost,但Visual Studio本地部署的应用程序应该,但我不能成功.
然后我使用Fiddler检查并最终为我的UWP应用程序启用了环回功能,并发现它已经启用.
我意外地发现,只有在Fiddler运行时,我的UWP应用程序才能连接到WebAPI服务.
我想知道为什么.
IPv6 格式的环回 IP 地址为: 0000:0000 : 0000 :0000 : 0000:0000: 0000:0001
缩写为: 0:0: 0 :0 : 0:0: 0:1
然后缩短为(保留最后 2 个单词,即 4 个字节,以匹配 IPv4): :0:1(但我仍然不知道为什么它在 1 之前是双冒号而不是单冒号,也许是为了暗示有这里4个字节)
并简化为::: 1
将::1展开为IPv4格式,即: 0.0.0.1
但这与127.0.0.1不一样,数字 127 在哪里?
Loopback 4 中是否有一种方法可以使用@get()装饰器(或任何其他装饰器),传递路径但不生成该路由的开放 api 规范?
通过传递特殊参数/使用@operation或其他什么?
谢谢。
loopback ×10
node.js ×3
strongloop ×2
boost-asio ×1
c ×1
c# ×1
c++ ×1
httplistener ×1
ip ×1
ipv4 ×1
ipv6 ×1
javascript ×1
loopback4 ×1
loopbackjs ×1
model ×1
openapi ×1
sockets ×1
tcp ×1
typescript ×1
uwp ×1
v4l2loopback ×1
windows ×1