【发布时间】:2020-04-23 15:14:44
【问题描述】:
我尝试按照 spring-flights 示例进行操作,但我不断收到 RSocket 错误 0x201 (APPLICATION_ERROR): No handler for destination。
元数据.js
import {JsonSerializer} from 'rsocket-core';
export class Metadata extends Map {
constructor(json) {
super();
if (json != null) {
for (let [key, value] of json) {
this.set(key, value);
}
}
}
toJSON() {
const result = {};
for (let [key, value] of this.entries()) {
result[key] = value;
}
return result;
}
}
Metadata.ROUTE = "route";
Metadata.AUTHENTICATION_BEARER = "message/x.rsocket.authentication.bearer.v0";
export const JsonMetadataSerializer = {
deserialize(data) {
if (data == null) {
return null;
}
let json = JsonSerializer.deserialize(data);
return new Metadata(json);
},
serialize(metadata) {
if (metadata == null) {
return null;
}
let json = metadata.toJSON();
return JsonSerializer.serialize(json);
}
};
JsonMetadataSerializer.MIME_TYPE = "application/vnd.spring.rsocket.metadata+json";
但如果没有自定义元数据,它可以很好地工作。
serializers: {
data: JsonSerializer,
metadata: IdentitySerializer
}
metadataMimeType: 'message/x.rsocket.routing.v0',
socket.requestStream({
metadata: String.fromCharCode('greet-stream'.length) + 'greet-stream',
})
我需要有关自定义元数据的帮助,以便我可以使用不记名身份验证
【问题讨论】:
-
您尝试过复合元数据github.com/rsocket/rsocket-js/blob/… 吗? Spring 使用它作为默认值,所以这个例子应该可以工作
-
是否支持不记名令牌。如果确实如此,我将如何在元数据中传递令牌
标签: javascript java spring-boot spring-webflux rsocket