Posted on 2005-04-14 21:13
随心所欲 阅读(380)
评论(0) 编辑 收藏 网摘
swan本来是我的framework中的一个通讯模块。做着觉得比较有意思,就扩展开来,变成一个P2P。
已经建立了底层的通讯模块和简单的UI
当前进度:代理服务
目标:建立一种网络代理服务,代理火墙之内的用户。
我不是很清楚QQ或者MSN之类的具体是怎么做的,暂时先使用我自己的一套代理法则,叫他RPR(roy's proxy rules)。
RPR法则:
1:每个用户都同时具有Client和Server的功能,同时还具有Proxy的功能。
2:每个用户有0-n个代理。
3:每个用户有同伴的0-n个代理。
4:一个NameService。
5:一个proxy router
当前进度:测试Proxy
制作完成,局域网内部测试没问题,跟踪程序,确实也是按照预定的方式进行代理。
现在开个代理服务器,公开测试一下。
几个bug:
1:每次上线通知时MessageBox有点不好。应该做成一个不需干预的方式通知用户。
2:每次新的消息来到时,焦点的位置都是在最上边。
3:新的消息到来时,不能主动打开swan进行接受。Server同时也要订阅OnSend事件。考虑多加一个事件代理。
4:保留聊天记录。纯文本文件就可以。
5:启动连接自己的proxy。
6:去掉测试连接功能。没有必要,如果连接关闭了,Swan窗口会自己关闭。
7:代理关闭的话,同时关闭所有的由这个代理连接的Swan。就是让每个Connection都订阅ProxyListener的OnDisConnect事件。
当前进度
已经有了完整的连接拆除的实现。移动的椭圆窗口(像skype)报告信息。主窗体在最顶层。
新消息到来时提示用户,并记录信息。
修改计划:本地数据源
记录用户通讯记录使用xml格式(原来就是纯文本),使用WilsonXmlDb;
或者使用borland的firebird数据库。
使用firebird的embed。
修改计划:UI、异常
像skype类似的消息窗口,修改显示界面。
ok。基本完工。等待测试。
