加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

简单的Websocket在scala/akka/play

发布时间:2020-12-16 09:31:50 所属栏目:安全 来源:网络整理
导读:我想使用Scala / Akka / Play创建一个简单的Websocket应用程序。 从示例(如webchat或recent talk at the Scala Days)中我看到的是JavaScript / Coffeescript,html模板等之间的混合。 我的Websocket应用程序的客户端也将是原生的移动应用程序(Android,iOS)
我想使用Scala / Akka / Play创建一个简单的Websocket应用程序。

从示例(如webchat或recent talk at the Scala Days)中我看到的是JavaScript / Coffeescript,html模板等之间的混合。

我的Websocket应用程序的客户端也将是原生的移动应用程序(Android,iOS),所以我需要考虑“脱离浏览器”。

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

解决方法

WebSocket连接中有两个部分:服务器和客户端。您可以使服务器部分使用Play2,并使用Android实现客户端(见 websocket-android-phonegap),iOS(见 Unitt),javascript应用程序…

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

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。客户端是另一回事。

如果您使用铬或铬,只需在开发人员工具中打开您的JavaScript控制台,就可以像这样连接到您的服务器:

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

当您发送一个消息时,它将发送回您的消息并将其记录在javascript控制台中。

您还可以使用http://www.websocket.org/echo.html回波测试,并将其输入您的“ws:// localhost:9000 / connect”url。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读