我正在为 Campfire 开发一个聊天机器人,它将当前用户列表保存在一个原子中,(defonce users (atom {}))
.
我最初选择这个引用类型是因为它很简单,到目前为止它运行良好,但可能需要改变。
Campfire 向流式 API发送
EnterMessage
和事件。LeaveMessage
我的机器人通过从 Campfire API 获取当前用户列表来对这些做出反应,然后使用新列表调用reset!
atomusers
。那些相同的 Enter/Leave 事件会触发随机交互,例如从
users
atom 中选择一个随机用户并向其提问。
问题
上面的数字 2 经常询问刚刚离开的用户,或者从不询问刚进入的用户,因为users
原子还没有!reset
。我想我需要使用 a ref
,但这些文档说“作家永远不会阻止通勤者或读者。 ”问题是,我希望那个作家阻止我的读者,对吧?!