我尝试按照 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',
})
我需要有关自定义元数据的帮助,以便我可以使用不记名身份验证