当我发送请求时(Google Chrome控制台):
42/v1/user,["currentPerson",{"transactionId":"53445t-53454-534543-53453435"}]
其中53445t-53454-534543-53453435
- 是唯一的transactionId,我自动将其包含在请求和每个响应中。
响应类似于
42/v1/user,["currentPerson","53445t-53454-534543-53453435",{"id":5,"firstName":"Ivan"}]
其中/v1/user
- 带版本控制的命名空间;
1)我不想要42.并且不希望阵列在顶层 2)我只想要这样的回应
{
"transactionId": "53445t-53454-534543-53453435",
"namespace": "/v1/user",
"event": "currentPerson",
"person": {
"id": 5,
"firstName": "Ivan"
}
}
3)这样的请求
{
"transactionId": "53445t-53454-534543-53453435",
"namespace": "/v1/user",
"event": "currentPerson"
}
现在我使用socket-io js客户端,但仅用于测试目的,服务将与使用某些C ++库一起使用,因此我不需要使用socket.io样式格式。
有可能吗?我可以使用哪些方法?
我找到了addJsonObjectListener
方法和sendJsonObject
,但它们已在1.7.0中删除了,无论如何我不想传递@class
指令,对我来说似乎很奇怪让客户了解服务器类层次结构。我只想在客户端上定义一些对象并在服务器上手动解析,然后将手动形成的json传递给客户端。
P.S。:顺便说一句Configuration.jsonTypeFieldName
现在不可用,所以@class
现在是唯一的名称选项。
netty-socket-io 1.7.7
答案 0 :(得分:0)
我想在String中转换Json响应并将其作为String发送。
String json = convertInString(json);
buf = Unpooled.copiedBuffer(json, CharsetUtil.UTF_8);
ctx.write(a);