【发布时间】:2014-10-11 06:54:20
【问题描述】:
哦,嗨
我用 node.js 和 faye 编写的服务器创建聊天应用程序。
- 客户订阅
/messages/new -
这样的消息:
客户端
--[publish to /messages]-->服务器端客户端--[publish to /messages/new]-->所有客户端
但如果我是 Anonymus H4x0r,我可以编辑客户端 js 文件并让我的客户端不在/messages 上发布消息,而是在/messages/new 上发布消息。消息将通过服务器端客户端并直接发送到客户端。
我希望消息通过服务器端客户端,因为服务器会变魔术:验证令牌,将消息保存在 redis 数据库和日志中
问题
如何禁用客户端发布的特定频道?
我应该编写自定义引擎吗?我在 Faye 服务器中没有找到任何频道配置。 让我知道,如果你想看一些代码,不知道该给你看什么。
注意
createServer = ->
server = http.createServer()
server.listen settings.serverPort
bayeux = new faye.NodeAdapter ##################################
mount: '/faye' # This is "server side client"
timeout: 45 # lol
bayeux.attach server ##################################
fayeClient = bayeux.getClient()
log "listening on port #{settings.serverPort}..."
return [fayeClient, bayeux]
编辑
- 编辑:将“服务器”重命名为“服务器端客户端”
- Edit2:添加
Note
【问题讨论】:
-
绕过服务器意味着你有对等连接,而你没有。
-
是的,我没有表达清楚。消息绕过我的 服务器 - faye.nodeAdapter 附加到 http 服务器,这是事实上的服务器端客户端。我需要控制 消息流 以阻止来自浏览器客户端的特定通道上的消息。
标签: javascript node.js chat faye