2010-10-04 85 views
6

我的想法是建立一个网站,在那里人们可以注册并搜索一个人聊天。他们可以选择来自某个国家,流派,某些年龄的人,等等。实现人与人之间的随机聊天

是的,我知道有很多这样的网站,但我想实现这一点,因为它看起来非常具有挑战性。

你能告诉我一些想法,我怎么才能使用PHP + MYSQL + JQuery(Ajax)实现这个功能?我既不是初学者,也不是先进的。

那么,该如何工作?一个人点击搜索按钮,这个人被放入他搜索某人聊天的数据库中,接下来是什么?我也希望能够让人们在同一时间与几个人交谈。

我不是要求一个代码或东西,只是想法如何编码,不需要代码。

谢谢。

+4

感谢我的新网站的想法! bwahahahahaha :) – Drewdin 2010-10-13 20:26:59

+0

JavaScript会杀死你的带宽,我必须说。但是你需要考虑很多事情看看我的答案。 – Val 2010-10-14 05:06:34

+0

@Drewdin:嗯,我真的不想让你失望,但已经有很多像这样的网站。 :)无论如何,祝你好运。 – 2010-10-14 14:44:20

回答

11

我不认为像PHP这样的同步阻塞编程语言是这种应用程序的正确平台。选择像JavaScript这样的异步,非阻塞语言更明智些。这具有很大的优势,您可以使用Long Polling这将改善应用程序中的聊天体验。

因此,我建议使用NodeJS来实现。您可能想要在节点中查看an implementation of a simple chat

+4

因为什么时候PHP是'阻塞'语言和'JavaScript'是一种非阻塞语言?还是你暗示,因为PHP是服务器端和Javascript是客户端?编辑:我现在看到,你正在为NodeJS广告 – smirkingman 2010-10-13 13:45:29

+2

我迟到了。 +1的Node.js它只会使聊天运行顺畅,资源不足,您可以轻松处理单个vps上的1000个并发用户,另外还有可处理Twitter OAuth等的模块,因此您甚至没有如果你不想使用数据库,你可以用Socket.io等代码来进行对话 – stagas 2010-10-14 01:04:55

4

为每个组织单位(国家,流派,年龄等)制作一个存储桶。

当使用连接时,为它们所属的每个存储桶分配一个增量更大的索引。

当用户想要连接桶中的某个人时,只需生成一个介于0和桶的最大索引值之间的新随机数然后连接它们!

0

您可以使用Orbited(连同js.io的浏览器),要么XMPP或IRC作为基础系统。这两个提供强大的聊天基础设施,可以让您实现您需要的任何功能,例如群聊。

2

我相信使用PHP + MySQL很好。我建议你使用推送服务使聊天环境更好。通过推送,您的客户端不需要请求服务器获取新数据+就可以实时聊天。一些推送服务是:PusherAppKwwika,HookboxBeaconPush。 他们有很好的支持,文档和库。祝你好运。

1

我不认为一个复杂的框架是这种应用程序的一个很好的解决方案。 我建议你坚持一个基本的JavaScript/jQuery的客户端..和PHP的服务器端.. 唯一的问题,你可能会遇到的是,你需要一个非常强大的数据库解决方案,假设你至少针对一些流量,并且只有当您需要存储消息的存档时,在这种情况下,我会建议Oracle(以在大型数据库中工作得很好而着称,但它不是免费的)提供。 如果不是这样,MySQL(免费)将使用相对较小的数据库在高流量上做的很好。

基本上,其中的想法将依赖于您的应用程序很简单..您可以与用户,另一个与消息,首选项...等 关于客户端...只刷新页面每3 -5秒,或让用户指定费率,并用新消息/用户/请求等更新网页(如果有的话)。 一旦用户关闭,你可以从数据库中删除与他的活动有关的所有信息,这将节省一些空间。

希望你能理解我的英语, 最好的问候。

1

你能告诉我怎么使用PHP + MYSQL + JQuery(Ajax)实现这个功能吗?我既不是初学者,也不是先进的。

如果你是你说的那样,那么我相信你不知道你打算使用的任何技术。所以,在这种情况下,我建议你先做一些阅读,再做一些简单的例子,然后从那里继续。例如,

  • 开始用PHP How-to文章 - 学习语法
  • 创建一个简单的网页 - 创建您的第一个网站
  • MYSQL How-to文章 - 学习查询/语法
  • 添加数据库MySQL的可能,实现简单的CRUD操作
  • 阅读有关聊天应用 - 工作/内部,不同的架构,你可以按照
  • 准备一个小的客户端/服务器应用程序基础 - 不同的协议被用来

...然后当你开始感觉舒适的代码是当你在代码开始思维,转移到您的羽翼丰满聊天折叠!

您最终可能会扭曲您原来的想法,但不要担心,它是过程的一部分。当我们看到更清晰的图片时,事情就会改变。

即使您打算使用现有的开放库/控件,您也必须知道如何使用它们;你应该得到足够的技能,你知道一个钉子是锤打,但没有其他方式。

另外,如果以奉献精神完成,我会看到大约2到3个月的端到端阶段。