scala/akka/play中的简单Websocket



我想使用Scala/Akka/Play创建一个简单的Websocket应用程序。

我从这些例子(比如网络聊天或最近在Scala Days上的演讲)中看到的是JavaScript/Coffeescript、html模板等等的混合

我的Websocket应用程序的客户端也是本地移动应用程序(Android、iOS),所以我需要"跳出浏览器"思考。

如何创建一个可以简单地推送"hello"字符串的websocket应用程序?

WebSocket连接中有两部分:服务器和客户端。您可以使用Play2制作服务器部分,并使用Android(请参阅websocket Android phonegap)、iOS(请参阅Unitt)、javascript应用程序实现客户端。。。

以下是非常的基本websocket连接的示例,该连接取自http://blog.tksfz.org/2012/10/12/websockets-echo-using-play-scala-and-actors-part-i/:

package controllers
import play.api.mvc._
object Application extends Controller {
  def index = WebSocket.using[String] {
    val out = Enumerator.imperative[String]()
    val in = Iteratee.foreach[String] {
      msg =>
        out.push(msg)
    }
    (in, out)
  }
}

您只需要设置一条指向控制器conf/routes:的路线

GET /connect  Application.index

服务器已准备好运行。然后,您可以使用javascript应用程序、Android应用程序等连接到WebSocket。客户端是另一回事。

如果你使用chrome或chrome,只需在开发工具中打开javascript控制台,你就可以像这样连接到服务器:

ws = new WebSocket('ws://localhost:9000/connect')
ws.onmessage = function( message ) { console.log( message ); };
ws.send('test')

它会向您发回消息,并在您发送消息时将其记录在javascript控制台中。

您也可以使用http://www.websocket.org/echo.htmlecho测试并将您的'ws://localhost:9000/connect' url提供给它。

您可以使用旧的Socket,但在端口转发(即通过防火墙)方面会遇到问题,也可以使用Websocket客户端库,例如Java中的以下库:http://www.eclipse.org/jetty/documentation/current/jetty-websocket-client-api.html

相关内容

  • 没有找到相关文章

最新更新