如何解决区分内部用户、外部用户?
案例:
发送文件,如果是内部用户,直接发送command、如果是外部用户则发送url
--------------
内部用户之间发送文件:a-b
a-b发送传输的command,messageid=1, 压入callback
b 链接comet
b-a 发送succeed,messageid=1
a调用回调callback,启动发送文件
-----------------------
方案一:
A::
a发送一个url,指出sendercode = 1, receivercode = 2
a启动getCometMessage侦听sendercode = 1,等待回复
b链接url, 向sendercode = 1发送通道信息 code = 3,同时进入等待(GetCometTempMessage, sendercode = 3)
a收到信息后,发送文件, postmessage, sendercode = 1, receivercode = 3
这种策略下,不需要修改任何的代码。
------------------------
方案二:
A::
a发送一个command,内容是一个url,指出sendercode = 1, receivercode = 2,同时压入回调堆栈
b链接url, 通过nonprotocolmessage发送一个commandsucceed,包含了messageid/guid/结果
b同时进入等待(GetCometTempMessage, sendercode = 2)
a收到回调后,发送文件, postmessage, sendercode = 1, receivercode = 2
------------------------
方案一:
1. 双方传送的message需要符合一定的规则。但是这个和messageflow无关,因为直接交给了comet了。
方案二:
1. 需要扩展nonprotocol接口
2. 对sendcommand的封装需要修改,因为需要让网站提取guid/messageid
对比之下,选择方案一。