当前位置:  技术问答>java相关

协作开发:NetCaller(基于java技术的点对点聊天程序)

    来源: 互联网  发布时间:2015-03-06

    本文导语:  NetCaller设计草案 系统名称:NetCaller(基于java技术的点对点聊天程序) 设计目的:使用java技术提供一个完全跨平台使用的通用网络聊天工具,不受服务器端的限制,充分发挥各客户机的能力。 开发背景:目前没有类似...

NetCaller设计草案
系统名称:NetCaller(基于java技术的点对点聊天程序)
设计目的:使用java技术提供一个完全跨平台使用的通用网络聊天工具,不受服务器端的限制,充分发挥各客户机的能力。
开发背景:目前没有类似的软件产品能够提供完全的跨平台能力,而且大多是使用服务器/客户端方式开发,使用者受限于服务器的服务能力和状态,一旦服务器瘫痪将造成所有用户的通讯中断。而且在服务商的用户达到一定数量后开始对用户施加限制和增加用户不愿看到的内容以及增加广告,例如oicq。由于java技术已经被大多流行的系统所接受,而使用swing技术开发的java程序可以直接在各个平台上运行,通过使用tcp/ip技术又可以实现通讯的跨平台性,因此本系统理论上是完全可以跨平台使用的。
开发环境:软件要求jdk1.2及以上版本,工具不限,系统不限,根据最后设计方案可能要求增加一些辅助的java API,例如java Mail。
总体设计
l 界面设计:界面的设计要求和oicq大体相同。要求基本实现和它一样的特性,功能上不同的地方可以忽略。不要求实现需要系统相关的功能,例如自动隐藏,如果可以在各平台下实现则进行开发。
l 主要功能:一点对多点的通讯能力,会议模式,二人世界模式,文件传送,ip变更的自动通知能力,自动连接,好友记录,聊天记录,定时自动连接,基本超文本显式能力,黑名单,名片传递,界面更换,头像库自动扩充,暂时下线,隐身。
功能说明
l 一对多通讯能力:一个客户端程序可以和多个其它客户端通讯,在一个ip上可同时存在多个客户端。
l 会议模式:一个客户端可以成为会议主叫方,主叫方在会议模式形成后临时充当会议服务器,负责接收各成员的信息并将之传递到会议中的其它所有成员,主叫方自动成为会议的管理者,可以将其它成员赶出本会议。
l 二人世界模式:已连接的两个客户可以进入二人世界模式,模式的形成需要经过被呼叫方的同意,任何一方可以不经对方同意随时退出此模式,此模式即告结束。在此模式中时的输入基本上立即反应到对方的输出窗口,此窗口是一个独立的窗口,不会影响主程序的执行以及和其它成员的通讯。
l 文件传送:可以进行文件的传递,文件格式没有限制。
l ip变更自动通知:通知的方式待定,考虑使用mail作为中介。另外可以增加服务器方案,ip的变更将通知服务器更新自己的ip信息,以便其它用户在查询服务器时可以得到最新信息。具体见后面的相关说明。
l 自动连接:一方主动连接另一方时不需要经过被呼叫方的同意,但是连接建立后呼叫方在被呼叫方的陌生人里面,而被呼叫方在呼叫方的好友名单里,如果呼叫方的ip或者mail地址符合被呼叫方的某个好友的记录则进入好友名单,并根据规则更新好友记录。规则是如果mail和ip都符合则直接进入好友名单,如果只有ip符合,则提示是否加入好友名单还是覆盖原记录或者不予理会而放入陌生人名单,如果mail符合则检查传送的mail拥有权口令,口令符合则自动更新该好友的ip,不符合则提示是修改该好友的mail拥有权口令而更新ip还是认为该连接是mail冒充而忽略该连接请求。
l 好友记录:记录好友的基本信息。
l 聊天记录:记录聊天内容,文件格式待定。
l 定时自动连接:对于好友名单中的未在线好友定时自动发送连接请求,时间间隔可以设置。
l 超文本显式能力:信息分为普通文本信息和朝文本信息,在信息输入的时候可选,在输入超文本信息的时候可以建立几个小工具以方便输入,格式以标准的HTML标签为准,主要是几个文本格式控制标签,如font、b、I、center、h为主,可以考虑增加几个常用的图片,如表情,花等而添加img标签的使用。另外可以考虑使用的是ul、ol等列表标签的使用,其它未用标签简的内容忽略。
l 黑名单:可以将好友和陌生人加入黑名单,在黑名单中的人的连接请求及信息将被忽略。
l 名片传递:由于连接时传送的基本信息基本不可信,因此对于可信任的好友或者陌生人可以将自己的名片传递给他,接收方自动更新对于记录。一个用户可以设置多个名片,因此名片的真实性不做保证。信息可以分为:基本信息,备注,名片。基本信息是在连接时自动传递的,备注是用户为好友添加的,名片是自动更新的,但是只能保存一个(可能对方有多个)。
l 界面更换:可以使用皮肤库中的不同配色方案。
l 头像库自动更新:用户可以自己收集头像并用于自己,在连接时通知被连接方自己使用的是自定义头像,被连接方根据发送的文件名在自己的头像库中查找是否已经有该头像,有则忽略,否则提示用户是否接收该头像,选择不接收则将该好友的头像设置为缺省头像。
l 暂时下线:用户暂时有事,不能进行正常的聊天,连接不断开,可以向之发送信息,但是不能提交会议、二人世界等需要对方确认的信息。
l 隐身:在已连接时从在线好友名单上显示下线,但是实际连接未断开,还可以进行正常的通讯。如果刚刚启动,则和可建立连接的好友建立连接,但是在对方的在线名单上不显示。
功能开发进度
上面的功能只是考虑的最后需要完备的功能,在开始阶段可以只实现基本的功能,开发顺序是:
1. 一对多,定时自动连接,好友记录,自动连接;这些是最基本的功能,必须完成。
2. ip变更自动通知,文件传送,黑名单,聊天记录;基本扩充功能。
3. 名片传递,会议,二人世界;扩充功能。
4. 超文本,暂时离线,隐身;功能完善。
5. 界面更换,头像库自动扩充;界面完善。

为推广使用而考虑的事情
为了使更多的使用者相互之间知道对方的存在,考虑建立一个服务器,存放用户的基本信息,mail,ip,端口,昵称,性别,年龄,地区,只有mail,ip,端口和昵称是必填的,昵称可以重复,不存储其它信息,必要信息在连接时由连接双方传递。服务器不保证对方的信息是最新的,信息的更新依赖于使用者向服务器提交自己的更新信息,服务器不能向使用者索取,只能等待用户自己提交。服务器不负责各客户端的连接的建立,而仅仅是一个ip信息存储器。用户的ip更新可以自己设置为自动提交和手动提交,在自动提交时,在程序启动时就试图和服务器建立短暂连接,提交自己的ip信息。


以上是开发草案。
请对草案中存在的问题提出改进意见,并对草案的可行性发表看法。
有合作开发兴趣的朋友可以加入:
http://www.smiling.com.cn/group/homepage.ecgi?group_id=27119

|
关注+学习

|
请寄一份指令表到:cxj_2000@hotmail.com

|
可以联系:lhykillers@sina.com

|
腾讯的移动qq功能很方便,为此我就算开着icq或msn也要顺便把qq开着。

免费软件要加入这个功能,可能难度比较大吧,这不是个纯技术问题。

我对netmeeting的共享桌面功能很喜欢。

|
这个软件的定位是share还是free?

如果能在手机上开发客户端,或许会变得很有趣。

|
只是一个简单建议,我也刚刚了解xml :)

如果不考虑效率的话, xml会成为一个开放接口, 并且非常方便以后扩充
xml的扩充能力很强,增加什么功能只要加一个新的字段, 旧版本也不会因此而不兼容

如果有人写其它版本的NetCaller也可以根据dtd简单完成.一个开放的接口可以鼓励不同的人分头在不同的系统上用不同语言分别完成客户端和Server

另外,icq, oicq都要求有专用server,可否用其它方式来完成一个松散的server组合,并且很容易实现,比如在http上用cgi就能做server. 这样局域网也可以构建一个小系统.松散的server直接可以通过客户端和其它方法来相互了解,分担负载.

没仔细看你的计划,胡说几句 :)

|
网上已经有用JAVA实现的类似于QQ的CODE下载了
可以找来参考一下啊

|
好了,终于说到点子上——不使用服务器。不使用服务器怎样实现你所讲的好像qq那样的功能呢?就是连人家的ip地址也不知道啊,端到端怎样实现?

另外,难道你要所有用户都下载一个jdk来用你的软件?再加上java运行慢,你又不是不知道,你准本怎样克服?

|
假设这儿是我的邮箱,你是2001-11-4 18:37:24给我寄来了你的ip地址,而我是现在才看到你的ip地址,你要我现在用此ip地址跟你聊吗?你在吗?如果你是拨号上网的,ip是不定的,即使你在,我也未必能找到你。
而如果有服务器的话,一切都好了。但在做一个类似qq、oicq的东西确实有意义吗?

|
哈哈,没有中心节点是不可能成功的,你以为P2p的东东是真的实现了点对点吗?没有一个地址服务器他能?????????????
哈哈哈哈哈哈!!!!!!!还有你当大家都有固定ip的啊

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 小组协作平台 Citadel
  • 嵌入式应用开发协作系统 Yocto
  • 办公协作软件 GROUP-E
  • 实时协作工具 TowTruck
  • 在线协作和学习环境 Sakai
  • 协作编辑工具 Collabode
  • LaTeX 编辑协作环境 FlyLatex
  • 开源协作平台 Spicebird
  • 协作消费平台 CCMPP
  • 商业协作平台 Cerb
  • 软件项目协作系统 Celestic Community
  • 小组协作开发环境 FusionForge
  • 团队协作套件 Horde Groupware
  • 团队协作开发系统 Open Atrium
  • 基于Web的协作系统 WebCollab
  • 实时协作的 Web 应用 Cantas
  • 协作式 IDE Collide
  • 协作式思维导图 SharedMind
  • 项目协作管理平台 Codendi
  • 小组协作平台 Teamwork


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    编程语言 iis7站长之家