为什么kdb将0N 0N 0N 0Ni显示为websocket响应

为什么kdb将0N 0N 0N 0Ni显示为websocket响应,websocket,kdb,Websocket,Kdb,我已将.z.ws设置为打印来自websocket的响应 q).z.ws:{neg[.z.w].Q.s value x;} 我正在使用连接到ws://echo.websocket.org:80 q)r:(`$":ws://echo.websocket.org:80")"GET / HTTP/1.1\r\nHost: echo.websocket.org:80\r\n\r\n" 此websocket只会回显您发送的任何内容,并已使用浏览器对此进行了验证 而不是控制台显示我发送的内容。它只打印0N

我已将.z.ws设置为打印来自websocket的响应

q).z.ws:{neg[.z.w].Q.s value x;}
我正在使用连接到ws://echo.websocket.org:80

q)r:(`$":ws://echo.websocket.org:80")"GET / HTTP/1.1\r\nHost: echo.websocket.org:80\r\n\r\n"
此websocket只会回显您发送的任何内容,并已使用浏览器对此进行了验证

而不是控制台显示我发送的内容。它只打印0N,字符数相同

q)neg[r]"test"
0N 0N 0N 0Ni

q)neg[r]"testing"
0N 0N 0N 0N 0N 0N 0Ni
这与正在序列化的数据有关吗?我试过使用-9!在.z.ws中,但这不起作用


谢谢

成功创建WebSocket将返回一个两项列表-(句柄;HTTP响应)。要发送请求,需要使用“句柄”而不是完整的WebSocket对象

在输入中使用完整对象('r')基本上就是在两项列表中进行索引。这就是为什么当每个字符索引返回0N时,由于索引越界,您在控制台上得到的“0N”等于输入的长度。它实际上并没有向服务器发送请求

正确的使用方法:

q) r:(`$":ws://echo.websocket.org:80")"GET / HTTP/1.1\r\nHost: echo.websocket.org:80\r\n\r\n"
q) neg[r 0] "1+1"
q)"2\r\n"

此处有更多详细信息:

成功创建WebSocket将返回一个两项列表-(句柄;HTTP响应)。要发送请求,需要使用“句柄”而不是完整的WebSocket对象

在输入中使用完整对象('r')基本上就是在两项列表中进行索引。这就是为什么当每个字符索引返回0N时,由于索引越界,您在控制台上得到的“0N”等于输入的长度。它实际上并没有向服务器发送请求

正确的使用方法:

q) r:(`$":ws://echo.websocket.org:80")"GET / HTTP/1.1\r\nHost: echo.websocket.org:80\r\n\r\n"
q) neg[r 0] "1+1"
q)"2\r\n"

更多详情请点击此处:

非常感谢