bamfox 发表于 2005-5-29 11:44:03

andrewnow, 加入邮件列表了没有? :D

andrewnow 发表于 2005-5-29 13:10:06

加入了,我能经常收到eva的邮件,我也经常关注eva的进展


的确,服务器是个问题,没有回报没有谁愿意将昂贵的服务器提供出来,没有回报,硬件的维护也是个大问题,很难维持,我们可以学习apache,很多网站都是用的apache,为什么?首先是apache良好的性能,另外,不可缺少的是因为能赢利,可是apache本身是开源的,我们可以让系统的开发开源,而系统的运行商业化,这样寻找代理就会容易一点啊,是不是呢?

sjinny 发表于 2005-5-29 16:20:27

唉………………大家好象比较悲观哦……这在开源团队里还是比较少见滴~ :mrgreen:

其实要实现分布式的服务器没有什么难的,因为分布式的服务器之间基本没有通信!
因为基本上,所谓的“分布式服务器”,其实只是一个客户端同时连接上多个服务器端,所以对于服务器而言,分布式不分布式没什么区别。
当然这样有个问题,就是说加一个人为好友不再需要对方同意。而经过双方一旦同意,那么这好友双方会互相将对方加为好友,也就是说如果A是B的好友那么B一定也同时是A的好友,反过来也是的。当然如果你加对方为好友是不经过对方同意的,那么虽然你的好友列表里有对方,但是对方上线时不会主动告知你,只有你去自己查询了(而且还得对方没把你加入黑名单)。
下面给出例子:
假设一个服务器只允许在这台服务器上注册的用户登录(应该是很平常的约束)
比如有两个服务器ServerA和ServerB,上面分别有两个客户端登录了ClientA和ClientB,那么ClientB要加ClientA为好友该怎么办呢?ClientB先会得到ClientA的用户标识(这可能是查找到的也可能是其他途径得到的),这个标识会是这样的:[email protected],所以ClientB解析这个标识后就会建立一个与ServerA之间的临时连接(也就是说只能提交与操作主体的身份无关的请求的连接),然后通过这个连接向ClientA发出加好友的请求,这时ClientB是不知道ClientA的IP的,这时ServerA把请求转发给ClientA,如果ClientA接受,那么ClientA就会自动把ClientB加为好友(修改ServerA的数据库),当ClientB受到被接受的回应时也会让ServerB修改数据库让ClientA成为自己的好友。当一个Client上线时,会主动把自己的在线状态通知给自己的每个在线好友。
那么还有个问题:假如ClientB先上线,ClientA后上线,那么当ClientA上线时根本就不知道ClientB的IP,怎么把自己的状态发给对方呢?所以对于一个在线状态不明的通信对象,与之通信的流程是这样的:
ClientA先发一个查询给ClientB所在的ServerB,如果ClientB在线并且ClientB允许ServerB把自己的状态发给ClientA的话,那么ClientA就可以知道ClientB的IP了,这时就可以进行通信了……

恩……思维比较混乱……见谅…… :oops:
其实要商业化的话,作为软件当然是要开源,但是就提供通信服务而言则可以是无偿服务和有偿服务相结合,或者是在免费的基本服务的基础上提供付费的增值服务。特别是如果和手机结合起来,就…… 8)

mandrakechina 发表于 2005-5-29 16:54:10

把jabber进行扩展就行了,因为jabber本身就是通过xmlrpc来调用的。jabber已经可以做msn的代理,没有道理不能做qq的代理。

Anomymous 发表于 2005-5-29 20:18:28

我觉得是更快捷的娱乐,但是那么上qq的都是些什么人呢,大部分是网虫,如果是工作,很多人会选择MSN
现在的问题是qq已经有了众多的用户群基础,所以兼容qq几乎所有的是IM必须有的功能,那么还要有其他的
能来吸引用户来使用它的好玩的东西,我觉得目前应该可以考虑支持视频了看看网吧的硬件配置就知道有多流
行了,我的摄影头用camaroma webcam和video4linux都可以驱动了,希望能很快看到这个功能

andrewnow 发表于 2005-5-29 21:45:37

sjinny,我想和你讨论一下具体的分布式服务器问题,你给个简单的介绍好吗?具体能不能实现,你从细节上给个详细一点的文档

谁能帮我评估一下国内的linux用户数量?

linuxfans的老大们能不能评估一下,假如在linuxfans架个服务器的话,容量大概有多大?给个保守的估计

yunfan兄,假如开发的话,希望你能带领大家,我们要参考现有的IM,能借鉴的就借鉴,但一定要有一个越来越接近我们设想的东西出来,我们可以小范围内快速原型法先开发一个0.01的试运行一下

sjinny 发表于 2005-5-30 18:01:37

关于分布式服务器:
事情是这样的,我是在myicq时代从张勇那里听到这个想法的,张勇的设计就是仿照email,网上可以有很多个服务器,这些服务器不采用集中式的管理,它们有自己的域名、IP、数据库,而对于某个用户,具体的概念应该是“某个服务器上的某个用户”,所以也就是形如[email protected]这样的,比如[email protected],这很像msn,虽然我没用过msn。
我的想法是,争取的方向是尽量减少服务器之间的交互和依赖。最理想的模式是各个服务器互相之间并不知晓。也就是一台客户端可以同时与多个服务器通信,但是对于一个服务器而言只会与(以某种身份登陆的)客户端通信。这里的“以某种身份登陆”的含义是这样的:因为每个登陆了的客户端都是以某种身份登陆的,大体上可以把已经登陆到服务器上的客户端分成两类:一是以本地用户的身份登陆的,也就是说这个客户端登陆所用的身份是在这台服务器上已经注册了的某个用户身份;二是以匿名身份登陆的。第一类登陆与传统im没什么区别,主要说说第二类。第二类的作用是用来进行匿名查询,查询在线用户什么的,当找到在线用户后就可以通过服务器这个中介去与对方建立连接。
其实与其说分布式服务器,不如说开放式服务架构更好。
似乎具体细节上没什么。不知道你想要哪方面的更详细的资料?

pupilzeng 发表于 2005-5-31 10:09:34

楼上理解有误, 他的意思是,我们有自己的协议,自己的服务器,基本就是另一个腾讯,但是我们的东西同时又兼容腾讯的部分协议。 这和kopete/gaim区别还是非常大的。

其它都好办, 服务器是最大的问题。 如果按sjinny的办法,可能是可行的。
但是这个服务器端的互相通讯,协调比较麻烦。 最好是有自己的服务器,但是
目前基本是不可能的。
我说的就是服务器的问题,使用自己的服务器处理qq消息的话,你怎么跟其他登录tencent服务器的qq进行通讯?还有那些储存在服务器上的qq资料的存取?
难道只是让登录在eva服务器上的qq能使用qq协议进行通讯?那这又有什么意义呢?

sjinny 发表于 2005-5-31 13:31:36

我晕,我一直不知道im中到底有多少客户端间的消息要由服务器过问的……

Anomymous 发表于 2005-5-31 14:52:00

楼上理解有误, 他的意思是,我们有自己的协议,自己的服务器,基本就是另一个腾讯,但是我们的东西同时又兼容腾讯的部分协议。 这和kopete/gaim区别还是非常大的。

其它都好办, 服务器是最大的问题。 如果按sjinny的办法,可能是可行的。
但是这个服务器端的互相通讯,协调比较麻烦。 最好是有自己的服务器,但是
目前基本是不可能的。
我说的就是服务器的问题,使用自己的服务器处理qq消息的话,你怎么跟其他登录tencent服务器的qq进行通讯?还有那些储存在服务器上的qq资料的存取?
难道只是让登录在eva服务器上的qq能使用qq协议进行通讯?那这又有什么意义呢?
你确实理解有误,我们的服务器并不能处理qq消息,但我们的服务器能分辨消息的来龙去脉,如果是发往qq的,就转到腾讯的服务器上,这和现在的eva把消息发往腾讯的服务器是一样的,只不过中间经过我们的服务器辨别一下而已...

alpher 发表于 2005-5-31 15:13:49

为什么要经过服务器辨别呢?
本地辨别不就行了
qq的东西完全不用经过eva的服务器
eva的服务器,只需要存储eva特有的用户信息和消息

sjinny 发表于 2005-5-31 15:27:40


为什么要经过服务器辨别呢?
本地辨别不就行了

对啊,所以我觉得其实服务器间的交互不会很多……如果真的有的话……

pupilzeng 发表于 2005-6-1 10:57:20

为什么要经过服务器辨别呢?
本地辨别不就行了
qq的东西完全不用经过eva的服务器
eva的服务器,只需要存储eva特有的用户信息和消息
如果真是这样的话,那qq跟eva岂不是两个完分开的东西?
这完全可以由kpopte/gaim实现啊,就像msn,qq,jabber等,都可以在gaim中实现,然后分别发送到不同的服务器上面。
看不出来你的这个设计有什么特别之处。
如果是想实现一些自己的一套通讯协议,那以前linuxfans也搞过一个,你可以借鉴一下,然后再来论证他的可行性。

andrewnow 发表于 2005-6-1 11:41:23

为什么要经过服务器辨别呢?
本地辨别不就行了
qq的东西完全不用经过eva的服务器
eva的服务器,只需要存储eva特有的用户信息和消息
如果真是这样的话,那qq跟eva岂不是两个完分开的东西?
这完全可以由kpopte/gaim实现啊,就像msn,qq,jabber等,都可以在gaim中实现,然后分别发送到不同的服务器上面。
看不出来你的这个设计有什么特别之处。
如果是想实现一些自己的一套通讯协议,那以前linuxfans也搞过一个,你可以借鉴一下,然后再来论证他的可行性。
你有一句话说对了,我的设计确实没有什么特别的地方
但你还是没有明白我的意思,我说的新eva不是为了和qq聊天而设计的,我们有自己完整的一套,和qq聊天只是我们的附加功能,gaim是这样的吗?我说的eva本身是个完整的聊天系统
如果没有自己的服务器,linux用户想用上高质量的多媒体通讯就只能破解或指望腾讯给我们接口,前者不是长远之计而且基本不可能,后者就要看哪位强人去说服腾讯了
我现在想和你视频,没有服务器怎么搞??
还有,细分起来我们的eva和qq就是分开的两个东西集成在一起,但我们的eva记录用户的qq资料,登录eva同时登录qq,程序在处理的时候是分开处理的,但面向用户是屏蔽的,只是好友栏分了个类,有eva好友和qq好友,我登录了eva就能和yunfan视频还能和qq好友聊天,就在一个窗口里,不好么?

andrewnow 发表于 2005-6-1 12:03:47

为什么要经过服务器辨别呢?
本地辨别不就行了
qq的东西完全不用经过eva的服务器
eva的服务器,只需要存储eva特有的用户信息和消息
对,我现在也这么想,既然架服务器现在很难,那就要尽量减轻服务器的负担,能在客户端解决的尽量在客户端解决
页: 1 2 [3] 4 5 6 7 8
查看完整版本: 对eva的一点感想^_^+本人建议,讨论下一代eva