使用exproto网关中订阅主题失败

在grpc的onSocketCreated回调中使用ConnectionAdapter.subscribe()订阅主题失败code: UNKNOWN
message: “{error,unexpected_call}”
emqx日志如下:


这个要如何排查处理?

  1. 非法调用: 在你的代码逻辑中,你在 OnSocketCreated 函数内部(尚未返回结果前)就反向调用了 Subscribe()
  2. EMQX 拒绝请求: EMQX 的 ExProto 进程收到 Subscribe 请求,但检查发现该连接还在 connecting 状态(因为它还在等 OnSocketCreated 结束),因此无法处理订阅请求,抛出了 unexpected_call 错误。

简单来说:你不能在“创建连接”的同步过程中去使用这个连接,必须等连接建立完成。

感谢回复,问题是因为没有调用authenticate导致的

1 个赞