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

如何在scala中使用websockets创建多个聊天室?

发布时间:2020-12-16 18:48:42 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Play for Scala书中的Chat示例来学习如何使用WebSockets和Akka. 在本书中,有一个“ChatRoom”正在创建,并在Chat控制器中实例化,其内容非常简单: val room = Akka.system.actorOf(Props [ChatRoom]) 我想扩展此示例并提供多个聊天室而不是一个
我正在尝试使用Play for Scala书中的Chat示例来学习如何使用WebSockets和Akka.

在本书中,有一个“ChatRoom”正在创建,并在Chat控制器中实例化,其内容非常简单:

val room = Akka.system.actorOf(Props [ChatRoom])

我想扩展此示例并提供多个聊天室而不是一个.用户可以提供字符串,该字符串可以是聊天室“名称”,并且可以创建新的聊天室.任何试图加入这个聊天室的人都会互相分享广播,但不会与另一个聊天室的人分享广播.与IRC非常相似.

我的问题如下:

1:如果尚不存在具有唯一名称的ChatRoom,如何创建?
2:如何检查现有的ChatRoom是否存在并获得对它的引用?

聊天室名称将通过URL或查询参数来实现,该部分将是微不足道的.我只是不完全确定如何唯一地识别Akka ChatRoom,然后通过名称检索该Actor.

解决方法

你可以在Akka中命名演员,所以不要:

Akka.system.actorOf(Props[ChatRoom])

你将会拥有:

Akka.system.actorOf(Props[ChatRoom],"room1")

然后,根据您使用的Akka版本,使用Akka.system.actorFor(“room1”)或Akka.system.actorSelection(“room1”)来获取对所需聊天室的引用.

(编辑:李大同)

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

    推荐文章
      热点阅读