这个项目是完完全全可以让一个新手立刻上马的~~~
我们使用:
用ruby来编程
图形界面工具用: TK, GTK+, QT, wxWidgets,或 Fox,.....这里我选用了GTK+
用模型DRb连接用户和服务器
因为GTK+的缘故~要在linux下完成这个项目
基本功能的实现有以下:
1,实现聊天室的用户界面,连接一个服务器并且很容易接受应用程序的等待。
2,应用程序允许放弃一个聊天的服务器
3,在多用户中实现连接到一个服务器的文字聊天
4,在每个用户登录时更新用户信息(登录名,城市。。。。。)
根据进行的进度,我们可以附加实现以下功能:
1,保存所有的信息到服务器和用户的文件里。
2,显示表情图片。
3,传送文件。
4,用户登录界面。
5,安全的传送数据。
对于drb,有以下一些提示:
drb的功能是非常强大和简单的实现用户和服务器之间的交流
大家可以使用模型rinda,他是模型Linda在ruby下的一个分支(http://en.wikipedia.org/wiki/Tuple_space).

Linda的联想图
其中, tuplespace是一个放置管道的空间,他来管理应用程序的空间分配的信息,每个管道都有任意的大小,并且一般来说,一个管道是有生命时间的限制的(比如:60s)。
至于管道空间的操作有如下:
1. 写:写一个管道到管道空间里
2. 读:从管道空间读取数据,寻找你想要的管道,根据存在的尺寸和管道值的条件(比如说:第一个由message_type_ 开始的元素)
3. 取:和读一样,但是是从管道空间里删除一个管道。
下面是关于读和写的程序编码:
emitter.rb
#!/usr/bin/env ruby
require 'drb/drb'
require 'rinda/ring'
require 'rinda/tuplespace'
DRb.start_service 'druby://localhost:6666'
tuple_space = Rinda::TupleSpace.new
ring_server = Rinda::RingServer.new tuple_space
while true
tuple_space.write [:message, gets]
end
DRb.thread.join
reader.rb
#!/usr/bin/env ruby
require 'drb/drb'
require 'rinda/ring'
require 'rinda/tuplespace'
DRb.start_service
tuple_space = Rinda::RingFinger.primary
while true
puts tuple_space.take([:message, nil])[1]
end
DRb.thread.join
[ 本帖最后由 yunyunlover 于 2007-12-4 13:51 编辑 ]
最新回复
所以希望各位ruby高手也能来给个主意~~~~
这个项目是被skyover和drive2me两位热心的管理员鼎立支持的~~~
所以,虽然还没开始,我已经万分感激了~~~
我会在半个月内努力完成,希望能在圣诞节前做完所有的工作~~~~
之后会把开发的心得发上来和大家分享~~~
(自然,如果只是在大家的帮助下,我一个人完成的话~)
也就是一个人(团队)专门研究如何开发聊天室基本功能的实现
另一个人(团队)专门研究GTK+界面的实现
之后,大家在把项目和在一起~~~
这个聊天室的功能就基本实现了~~
聊天室进入界面.jpg
聊天室界面.jpg
wiki地址:http://dev.ruby-lang.org.cn/wiki/8
SVN地址:http://svn.ruby-lang.org.cn/rchat
希望早日签入代码,招到人手,兴旺起来!
我去发通知,找人来开发。
你需要安装一个SVN的客户端来做这事。
主页是:http://wxruby.rubyforge.org/wiki/wiki.pl
wxWidget 是一个跨平台的GUI库,是用C++实现的。有很长的历史,类似于MFC,但是是开源的。因为MFC逐渐退出微软的产品线,现在有很多C++的程序员开始用wxWidget编写windows,MacOS, linux下的GUI程序了。
Bob你终于来了,太好了。这位楼主的愿意把他们大学(一家法国大学)的项目拿到这里作为开源项目来做,但他也刚开始了解Ruby,所以需要我们的开发版主协助他来管理和开发这个项目。
你可以帮助他找到一位开发版主(我们的会员)来开发他们大学的项目吗?我一直在找,但还没有找到。这个月我很忙,Sky也很忙,你来了,正好帮助我们一下。谢谢!
如果暂时没有的话我先兼职着。呵呵