如何在Play!Framework WebSockets(“ wss://”)中使用TLS

ticofab

我无法wss://在使用Play!Framework 2.2创建的简单WebSocket应用中使用。它回显该消息。端点是这样的

def indexWS2 = WebSocket.using[String] {
  request => {
    println("got connection to indexWS2")

    var channel: Option[Concurrent.Channel[String]] = None
    val outEnumerator: Enumerator[String] = Concurrent.unicast(c => channel = Some(c))

    // Log events to the console
    val myIteratee: Iteratee[String, Unit] = Iteratee.foreach[String] {gotString => {
      println("received: " + gotString)

      // send string back
      channel.foreach(_.push("echoing back \"" + gotString + "\""))
    }}

    (myIteratee, outEnumerator)
  }
}

路线描述为

GET     /ws2                        controllers.Application.indexWS2

我从这样的JS客户端创建连接

myWebSocket = new WebSocket("ws://localhost:9000/ws2");

一切正常。但是,如果为了使用TLS而更改ws://wss://它,它将失败,并且出现以下Netty异常:

[error] p.nettyException - Exception caught in Netty
java.lang.IllegalArgumentException: empty text

我该如何工作?谢谢。

丹吉格

我真的很想为您解决这个问题!但是我不喜欢这个答案。似乎尚无针对Websocket的SSL的Play支持。在这里看到了它的提法,并且没有任何进展的迹象,因为:http : //grokbase.com/t/gg/play-framework/12cd53wst9/2-1-https-and-wss-secure-websocket-clarifications-and-documentation

但是,有希望!您可以将nginx用作安全的websocket(wss)端点,以转发到具有不安全的websocket端点的内部播放应用程序:

http://siriux.net/2013/06/nginx-and-websockets/页面提供了以下说明以及针对nginx的示例代理配置:

目标:WSS SSL端点: forwards wss|https://ws.example.com to ws|http://ws1.example.com:10080

“代理还是用于WSS和HTTPS连接的SSL端点。因此,客户端可以使用wss://连接(例如,来自通过HTTPS服务的页面),这更适合损坏的代理服务器等。”

server {
    listen       443;
    server_name  ws.example.com;

    ssl on;
    ssl_certificate ws.example.com.bundle.crt;
    ssl_certificate_key ws.example.com.key;
    ssl_session_timeout 5m;
    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {

        # like above

    }
}

Nginx非常轻巧有趣。会毫不犹豫地选择此选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Fleck的WebSockets。WSS

来自分类Dev

如何使用WebSockets

来自分类Dev

如何在snaplet中使用Network.WebSockets.Snap?

来自分类Dev

在Java中使用websockets?

来自分类Dev

在Jetty中使用Websockets

来自分类Dev

Django和Websockets:如何在同一过程中使用WSGI和websockets创建高效的项目?

来自分类Dev

Django和Websockets:如何在同一过程中使用WSGI和websockets创建高效的项目?

来自分类Dev

Websockets + TLS的Mosquitto配置

来自分类Dev

如何在Tornado中使用Python 3.5样式的异步并等待websockets?

来自分类Dev

如何在laravel应用程序中使用docker容器运行websockets

来自分类Dev

如何在Java中使用Play 2 Framework处理异常

来自分类Dev

如何在Java和Play Framework中使用HTTP方法

来自分类Dev

如何在Play Framework中使用ReactiveMongo + JSON聚合框架?

来自分类Dev

如何在Scala Play Framework 2.2中使用Memcached?

来自分类Dev

如何在Play Framework中使用Jquery load()?

来自分类Dev

如何在Play Framework中使用ReactiveMongo + JSON聚合框架?

来自分类Dev

我需要特定的websockets服务器来使用websockets和“如何”吗?

来自分类Dev

如何在 Windows C# 中使用 SuperWebSocket 部署 wss

来自分类Dev

如何启用Fulcro Websockets

来自分类Dev

使用websockets渲染模板

来自分类Dev

使用websockets的IP Messenger

来自分类Dev

如何通过非websockets传输使用JS SIP库?

来自分类Dev

对如何使用Spring-websockets进行脚呼叫感到困惑

来自分类Dev

使用Chrome WebSockets时如何传递其他cookie?

来自分类Dev

Poco C ++ WebSockets-如何以非阻塞方式使用?

来自分类Dev

如何确保 Reactive Stream 使用 Spring WebFlux 和 WebSockets 完成

来自分类Dev

在Ubuntu中使用websockets安装Mosquitto吗?

来自分类Dev

在Ubuntu中使用websockets安装Mosquitto吗?

来自分类Dev

如何在没有ASP.NET的情况下使用System.Net.WebSockets?

Related 相关文章

  1. 1

    使用Fleck的WebSockets。WSS

  2. 2

    如何使用WebSockets

  3. 3

    如何在snaplet中使用Network.WebSockets.Snap?

  4. 4

    在Java中使用websockets?

  5. 5

    在Jetty中使用Websockets

  6. 6

    Django和Websockets:如何在同一过程中使用WSGI和websockets创建高效的项目?

  7. 7

    Django和Websockets:如何在同一过程中使用WSGI和websockets创建高效的项目?

  8. 8

    Websockets + TLS的Mosquitto配置

  9. 9

    如何在Tornado中使用Python 3.5样式的异步并等待websockets?

  10. 10

    如何在laravel应用程序中使用docker容器运行websockets

  11. 11

    如何在Java中使用Play 2 Framework处理异常

  12. 12

    如何在Java和Play Framework中使用HTTP方法

  13. 13

    如何在Play Framework中使用ReactiveMongo + JSON聚合框架?

  14. 14

    如何在Scala Play Framework 2.2中使用Memcached?

  15. 15

    如何在Play Framework中使用Jquery load()?

  16. 16

    如何在Play Framework中使用ReactiveMongo + JSON聚合框架?

  17. 17

    我需要特定的websockets服务器来使用websockets和“如何”吗?

  18. 18

    如何在 Windows C# 中使用 SuperWebSocket 部署 wss

  19. 19

    如何启用Fulcro Websockets

  20. 20

    使用websockets渲染模板

  21. 21

    使用websockets的IP Messenger

  22. 22

    如何通过非websockets传输使用JS SIP库?

  23. 23

    对如何使用Spring-websockets进行脚呼叫感到困惑

  24. 24

    使用Chrome WebSockets时如何传递其他cookie?

  25. 25

    Poco C ++ WebSockets-如何以非阻塞方式使用?

  26. 26

    如何确保 Reactive Stream 使用 Spring WebFlux 和 WebSockets 完成

  27. 27

    在Ubuntu中使用websockets安装Mosquitto吗?

  28. 28

    在Ubuntu中使用websockets安装Mosquitto吗?

  29. 29

    如何在没有ASP.NET的情况下使用System.Net.WebSockets?

热门标签

归档