在人们之间实现随机聊天

时间:2010-10-04 16:43:45

标签: php jquery mysql ajax

我的想法是创建一个网站,人们可以注册并搜索人们进行交谈。他们可以选择来自某个国家,类型,具有一定年龄的人等。

是的,我知道有很多像这样的网站,但我想实现这个,因为它看起来真的很有挑战性。

您能否告诉我如何使用PHP + MYSQL + Jquery(Ajax)实现这一点?我既不是初学者也不是先进先出。

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

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

谢谢。

7 个答案:

答案 0 :(得分:11)

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

因此,我建议使用NodeJS实现此目的。您可能希望查看节点中的an implementation of a simple chat

答案 1 :(得分:4)

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

当一个用户连接时,为他们所属的每个桶提供一个递增的索引。

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

答案 2 :(得分:2)

我相信使用PHP + MySQL很好。我建议你使用推送服务来使聊天环境更好。使用推送,您的客户端不必请求服务器获取新数据+它使实时聊天。一些推送服务包括:PusherAppKwwikaHookboxBeaconPush。 他们有很好的支持,文档和库。祝你好运。

答案 3 :(得分:1)

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

基本上,依赖你的应用程序的想法很简单..你可以与用户建立一个表,另一个与消息,偏好...等。 关于客户端...只需每隔3-5秒刷新一次页面,或让用户指定速率,并用新消息/用户/请求等等更新网页(如果有的话)。 一旦用户离开,您可以从数据库中删除与其活动相关的所有内容,这将节省一些空间..

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

答案 4 :(得分:1)

  

您能否告诉我如何使用PHP + MYSQL + Jquery(Ajax)实现这一点?我既不是初学者也不是先进先出。

如果您就是您所说的那样,那么我相信您不了解您打算使用的任何技术。所以,在这种情况下,我建议你先做一些阅读,研究一些简单的例子,然后从那里开始。例如,

  • 从PHP how-to文章开始 - 学习语法
  • 创建一个简单的网页 - 创建您的第一个网站
  • mySql how-to文章 - 了解查询/语法
  • 添加数据库mySql,实现简单的CRUD操作
  • 了解聊天应用程序 - 工作/内部,您可以遵循的不同架构
  • 准备一个基于客户端/服务器的小应用程序 - 使用的不同协议

...然后当您开始对代码感到满意时,就是当您开始在代码中思考时,请转到完整的聊天应用程序!

你最终可能会扭曲原来的想法,但不要担心,这是过程的一部分。随着我们更清楚地了解我们想要什么,情况会发生变化。

即使您计划使用现有的开放库/控件,您也必须知道如何使用它们;你应该得到足够的技能,你知道钉子要被钉锤而不是其他。

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

答案 5 :(得分:0)

不确定Flash是否适合您,但Adobe P2P服务Cirrus绝对可以为您提供良好的后端:http://www.flashrealtime.com/simple-chat-p2p-netgroup-rtmfp/

答案 6 :(得分:0)

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