{"action":"closed","issue":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-gateway/issues/412","repository_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gateway","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gateway/issues/412/labels{/name}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gateway/issues/412/comments","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gateway/issues/412/events","html_url":"https://github.com/spring-cloud/spring-cloud-gateway/issues/412","id":338438105,"node_id":"MDU6SXNzdWUzMzg0MzgxMDU=","number":412,"title":"Websocket with load balancing (lb://myservice:port) ","user":{"login":"rangerzy","id":20948481,"node_id":"MDQ6VXNlcjIwOTQ4NDgx","avatar_url":"https://avatars2.githubusercontent.com/u/20948481?v=4","gravatar_id":"","url":"https://api.github.com/users/rangerzy","html_url":"https://github.com/rangerzy","followers_url":"https://api.github.com/users/rangerzy/followers","following_url":"https://api.github.com/users/rangerzy/following{/other_user}","gists_url":"https://api.github.com/users/rangerzy/gists{/gist_id}","starred_url":"https://api.github.com/users/rangerzy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rangerzy/subscriptions","organizations_url":"https://api.github.com/users/rangerzy/orgs","repos_url":"https://api.github.com/users/rangerzy/repos","events_url":"https://api.github.com/users/rangerzy/events{/privacy}","received_events_url":"https://api.github.com/users/rangerzy/received_events","type":"User","site_admin":false},"labels":[{"id":628238497,"node_id":"MDU6TGFiZWw2MjgyMzg0OTc=","url":"https://api.github.com/repos/spring-cloud/spring-cloud-gateway/labels/waiting%20for%20feedback","name":"waiting for feedback","color":"fbca04","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-07-05T06:10:35Z","updated_at":"2018-07-06T05:53:25Z","closed_at":"2018-07-06T05:53:25Z","author_association":"NONE","body":"### my websocket server is use netty，so it have port\r\n\r\n**my properties config**\r\n\r\n```\r\nserver:\r\n  port: 8087\r\nspring:\r\n  application:\r\n    name: usp-gateway\r\n  jmx:\r\n    enabled: false\r\n  cloud:\r\n    gateway:\r\n      default-filters:\r\n        #- PrefixPath=/httpbin\r\n        - AddResponseHeader=X-Response-Default-Foo, Default-Bar\r\n      routes:\r\n        - id: ast\r\n          uri: lb:ws://usp-core-api:8097/\r\n          order: 9000\r\n          predicates:\r\n          - Path=/usp/core/v0.6.0/dictation\r\n          filters:\r\n            - RewritePath=/usp/core/v0.6.0/(?<segment>.*), /$\\{segment}\r\n        # =====================================\r\n        - id: usp-core-api\r\n          uri: lb://usp-core-api/\r\n          order: 10000\r\n          predicates:\r\n          - Path=/usp/core/v0.7.0/**\r\n          filters:\r\n          - RewritePath=/usp/core/v0.7.0/(?<segment>.*), /$\\{segment}\r\n        - id: usp-common-api\r\n          uri: lb://usp-common-api/\r\n          order: 10000\r\n          predicates:\r\n          - Path=/usp/common/v0.7.0/**\r\n          filters:\r\n          - RewritePath=/usp/common/v0.7.0/(?<segment>.*), /$\\{segment}\r\nlogging:\r\n  level:\r\n    org.springframework.cloud.gateway: TRACE\r\n    org.springframework.http.server.reactive: DEBUG\r\n    org.springframework.web.reactive: DEBUG\r\n    reactor.ipc.netty: DEBUG\r\n\r\nmanagement.endpoints.web.exposure.include: '*'\r\neureka:\r\n  client:\r\n    service-url:\r\n      defaultZone: http://127.0.0.1:9888/eureka/\r\n    registry-fetch-interval-seconds: 5\r\n  instance:\r\n    lease-expiration-duration-in-seconds: 30\r\n    lease-renewal-interval-in-seconds: 10\r\n```\r\n\r\n**the exception**\r\n```\r\nio.netty.handler.codec.http.websocketx.WebSocketHandshakeException: Invalid handshake response getStatus: 200 \r\n\tat io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker13.verify(WebSocketClientHandshaker13.java:191) ~[netty-codec-http-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker.finishHandshake(WebSocketClientHandshaker.java:216) ~[netty-codec-http-4.1.24.Final.jar:4.1.24.Final]\r\n\tat reactor.ipc.netty.http.client.HttpClientWSOperations.onInboundNext(HttpClientWSOperations.java:147) ~[reactor-netty-0.7.7.RELEASE.jar:0.7.7.RELEASE]\r\n\tat reactor.ipc.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:136) ~[reactor-netty-0.7.7.RELEASE.jar:0.7.7.RELEASE]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[netty-codec-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) ~[netty-codec-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) ~[netty-codec-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241) ~[netty-handler-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) ~[netty-transport-4.1.24.Final.jar:4.1.24.Final]\r\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[netty-common-4.1.24.Final.jar:4.1.24.Final]\r\n\tat java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_131]\r\n\r\n2018-07-05 14:04:26.674 ERROR 31768 --- [ctor-http-nio-3] o.s.w.s.adapter.HttpWebHandlerAdapter    : Failed to handle request [GET http://192.168.1.84:8087/usp/core/v0.6.0/dictation?appid=35732071363112961&uid=D4258B5483E1&language=cn]\r\n\r\n```"}}
{"actor":{"display_login":"rangerzy"}}