可以使用Lagom 1.4前向websocket错误消息吗?

时间:2018-02-13 04:29:01

标签: lagom

我在Lagom中使用流式服务调用。一旦我升级到1.4,服务器的错误消息就不会通过websockets传播到客户端。这可以使用lagomtestkit进行测试,但是在运行使用' runAll'来自SBT或现场部署。

使用' runAll',所有失败的客户来电都会以" Peer关闭连接代码1011'内部错误'"

这里的问题很容易诊断。 akka-http 10.0.11 FrameOutHandler的第66-68行创建WebSocket closeFrame,抛弃传入的异常并返回"内部错误",即使它们有异常消息。

我的问题是,虽然我可以看到错误,但我无法在不修补akka-http的情况下看到任何简单的修复方法。这是否应该在Lagom中得到支持?当我们使用netty客户端时,它曾经在1.3中工作。

1 个答案:

答案 0 :(得分:1)

您是否正在测试另一个直接连接到服务侦听端口的Lagom客户端,或使用Web浏览器或通过端口9000连接的其他客户端?

如果是后者,您可能还需要将服务网关实施更改回Netty,如Default gateway implementation上的文档中所述:

  

Lagom开发环境提供了一个实现   服务网关基于Akka HTTP和(现在的遗留)实现   基于Netty。

     

您可以选择使用旧的netty实施。

     

在Maven根项目中:

<plugin>
    <groupId>com.lightbend.lagom</groupId>
    <artifactId>lagom-maven-plugin</artifactId>
    <version>${lagom.version}</version>
    <configuration>
        <serviceGatewayImpl>netty</serviceGatewayImpl>
    </configuration>
</plugin>
     

在sbt:

// Implementation of the service gateway: "akka-http" (default) or
"netty" lagomServiceGatewayImpl in ThisBuild := "netty"

无论如何,请create an issue on GitHub我们可以在框架中调查解决方案。