rxjs/WebSocket客户端使用特定的routeKey连接到AWS API网关WebSocket服务器

dphi5xsq  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(115)

我已经使用AWS API网关实现了一个WebSocket服务,并使用wscat成功测试了它:

$ wscat -c wss://<endpoint>.execute-api.<region>.amazonaws.com/dev/
Connected (press CTRL+C to quit)
> {"action": "testRouteKey", "msg": "hello from wscat"}
< {"msg":"Got 'hello from wscat'"}

字符串
该服务有一个自定义的routeKey“testRouteKey”,可以通过wscat访问,如上所示。
如何使用https://rxjs.dev/api/webSocket实现上述wscat活动?在我的尝试中,我可以使用以下代码访问$default routeKey

(new WebSocketSubject("wss://<endpoint>.execute-api.<region>.amazonaws.com/dev/"))
.next(JSON.stringify({
    "action": "testRouteKey",
    "msg": "hello from rxjs"
}));


CloudWatch显示rxjs客户端访问了$default routeKey,完整的JSON负载出现在requestContext.body中。如何指定自定义的routeKey“testRouteKey”?

z3yyvxxp

z3yyvxxp1#

我忘记了wscat的源代码是可用的,可以作为参考https://github.com/websockets/wscat/blob/master/bin/wscat
事实上,aws API gateway期望的有效载荷格式与我在wscat测试中使用的一样。我的js代码中的错误是WebSocketSubject.next期望的是一个对象而不是JSON字符串。

相关问题