打印

组织一个简单的多人聊天室软件项目,大家可以报名参加~

组织一个简单的多人聊天室软件项目,大家可以报名参加~

这个projet的目标,是实现一个多用户的聊天软件~算是简易版的聊天室,只要实现基本功能就可以~~
这个项目是完完全全可以让一个php?name=%D0%C2%CA%D6" onclick="tagshow(event)" class="t_tag">新手立刻上马的~~~

我们使用:
用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 编辑 ]

TOP

我对这个项目目前有一点构想~~~~~但是因为对ruby完全的不熟悉~~~~

所以希望各位ruby高手也能来给个主意~~~~

这个项目是被skyover和drive2me两位热心的管理员鼎立支持的~~~

所以,虽然还没开始,我已经万分感激了~~~

我会在半个月内努力完成,希望能在圣诞节前做完所有的工作~~~~

之后会把开发的心得发上来和大家分享~~~
(自然,如果只是在大家的帮助下,我一个人完成的话~)

TOP

如果有人参与这个项目的话~我想大家分工合作的重点就是drb和GTK+的界面

也就是一个人(团队)专门研究如何开发聊天室基本功能的实现

另一个人(团队)专门研究GTK+界面的实现

之后,大家在把项目和在一起~~~

这个聊天室的功能就基本实现了~~

TOP

聊天室的界面大致如下:
附件: 您所在的用户组无法下载或查看附件

TOP

已经通过,项目地址:http://dev.ruby-lang.org.cn/projects/show/8
wiki地址:http://dev.ruby-lang.org.cn/wiki/8
SVN地址:http://svn.ruby-lang.org.cn/rchat

希望早日签入代码,招到人手,兴旺起来!
谢谢大家加入Ruby中文社区!
[寻找您身边的Rubyist.]

TOP

支持!

TOP

现在进展如何?

TOP

还没开始呢,现在要找人带他们做,还要找会员一起来做。

我去发通知,找人来开发。
Flying Piggy...! 
天地人合一!

TOP

yunyunlover 还没有把代码check-in吗?
谢谢大家加入Ruby中文社区!
[寻找您身边的Rubyist.]

TOP

不知道怎么check in~~~~

TOP

我发给你的附件看了吗?在论坛里有个帖子上有说明的。
你需要安装一个SVN的客户端来做这事。
谢谢大家加入Ruby中文社区!
[寻找您身边的Rubyist.]

TOP

请问有没有相关的参考书籍,或者是介绍ruby图形界面的书?谢谢

TOP

回复 #12 Sevenpairs 的帖子

使用ruby开发GUI程序,可以使用 wxRuby, wxRuby 是wxWidget的一个ruby语言绑定实现。
主页是:http://wxruby.rubyforge.org/wiki/wiki.pl

wxWidget 是一个跨平台的GUI库,是用C++实现的。有很长的历史,类似于MFC,但是是开源的。因为MFC逐渐退出微软的产品线,现在有很多C++的程序员开始用wxWidget编写windows,MacOS, linux下的GUI程序了。
--- 沙漠之舟

TOP

To Bob.Yang,

Bob你终于来了,太好了。这位楼主的愿意把他们大学(一家法国大学)的项目拿到这里作为开源项目来做,但他也刚开始了解Ruby,所以需要我们的开发版主协助他来管理和开发这个项目。

你可以帮助他找到一位开发版主(我们的会员)来开发他们大学的项目吗?我一直在找,但还没有找到。这个月我很忙,Sky也很忙,你来了,正好帮助我们一下。谢谢!
Flying Piggy...! 
天地人合一!

TOP

回复 #14 drive2me 的帖子

drive2me 兄,我会先在论坛上召集一下该项目版主。
如果暂时没有的话我先兼职着。呵呵
--- 沙漠之舟

TOP

2009-07-04 06:54 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.57