不想通知播放框架套接字聊天中的所有成员

时间:2014-03-27 05:13:28

标签: sockets scala playframework chat akka

我在播放框架网络套接字中全新。 我从https://github.com/playframework/playframework/tree/master/samples/scala/websocket-chat

下载了聊天应用程序

我正在学习项目中的通知。但问题是我没有理解代码的行为。比如下面的代码,我想设置twill收到msg的成员 previusly members包含聊天室中用户的所有用户名,我修改它并将其设置为只有一个用户“govind”,但仍然所有成员都在通知,
我只想通知一些用户

def notifyAll(kind: String, user: String, text: String) {
members=Set.empty[String]+"govind"
val msg = JsObject(
  Seq(
    "kind" -> JsString(kind),
    "user" -> JsString(user),
    "message" -> JsString(text),
    "members" -> JsArray(
      members.toList.map(JsString)
    )
  )  
)
chatChannel.push(msg)
}

以及它的作用

sender ! Connected(chatEnumerator)
self ! NotifyJoin(username)

1 个答案:

答案 0 :(得分:0)

查看play.api.libs.iteratee.Concurrent以查找除广播之外的其他选项(一对多)。您可能希望阅读迭代器和演员,以了解最适合您的用例。

詹姆斯·罗珀写了一篇关于迭代的博客文章,你可以在这里找到: http://jazzy.id.au/default/2012/11/06/iteratees_for_imperative_programmers.html

Akka文档有助于了解演员的方式和内容: http://doc.akka.io/docs/akka/2.3.1/intro/what-is-akka.html

另外,如果你是Play的新手,那么你应该投入一些时间来掌握基础知识,然后再进入更高级的东西,比如迭代。