messageflow 本地和网站客户端之间传送文件设计 手稿

如何解决区分内部用户、外部用户?

案例:

发送文件,如果是内部用户,直接发送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

对比之下,选择方案一。 

原文地址:https://www.cnblogs.com/zc22/p/1741729.html