使用Javascript构建聊天系统

时间:2012-01-18 19:06:28

标签: javascript chat web-based

是否可以使用javascript和html构建一个小的(少于100个用户)聊天系统。它应该能够在浏览器中一致地工作并将所有聊天存储在服务器的数据库中吗? 现在,如果有可能,那么将它与其他传统聊天客户端进行比较会有什么优点和缺点。

5 个答案:

答案 0 :(得分:7)

是/否。

您可以使用JavaScript和HTML单独使用以下三种方法之一来实现聊天系统

  • P2P跨浏览器通信(仅适用于歌剧)
  • 用于中继聊天消息的CORS / JSONP远程服务器(需要第三方服务)
  • 您自己的服务器以转发聊天消息

请注意,聊天消息可以存储在本地,因此您只需要一个放松服务器。但是,如果您想在“离线”时接收消息,则需要一个聪明的P2P存储机制或存储在服务器中的消息。

另请注意,您的服务器可以运行JavaScript(使用node.js)

另请注意,没有CSS的聊天系统是一种糟糕的用户体验。

答案 1 :(得分:2)

顺便说一句,这是完全可能的,而且非常简单!

将Socket.io与node.js一起使用... Socket.io演示,不足为奇,聊天:http://socket.io/get-started/chat/

Socket.io有一个客户端库,可以很容易地为您的站点添加实时通信。按照之前的入门了解更多信息。

现在剩下的就是如何在服务器上存储消息。您有很多不同的方法可以做到这一点...... Microsoft有一个使用非常快速的表存储(一种NoSQL数据库)创建的示例:http://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-use-table-storage-web-site/

有一些node.js包可以与流行的关系数据库连接:https://www.npmjs.org/package/mssql(Microsoft SQL Server),http://azure.microsoft.com/en-us/documentation/articles/sql-database-nodejs-how-to-use/(Microsoft AZURE中的Sql数据库),http://nodejsdb.org/(MySQL和Drizzle ),以及许多其他人。我还没有使用它们中的任何一个!

至于优点和缺点,我真的相信node.js + socket.io可能是用于实时通信的最佳技术,包括聊天服务器和客户端。但是对于聊天,您还应该考虑XMPP这是一种有点标准的聊天协议,并且已经有免费和开放的服务器和客户端,并且还有一些用于node.js的优秀XMPP服务器。

请记住,Google停止使用XMPP支持自定义实现,Whatsapp使用自定义的XMPP服务器,因此偏离"规范" ...使用什么是不常见的最适合您的问题。如果您的要求是一个简单的聊天客户端和服务器,也许最好自己编写聊天协议,只需要所需的功能(这就是我所做的,因为我的聊天要求非常具体,但很简单......它将配置/自定义XMPP服务器以执行我需要的操作会更加困难。

至于缺点,如果你使用正确的工具,我真的不认为有任何缺点。您可以像使用当前浏览器的任何桌面客户端一样构建HTML 5聊天客户端。

答案 2 :(得分:1)

这是不可能的。这是简单的聊天应用程序。它会对你有所帮助。 http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/

答案 3 :(得分:0)

它实际上并没有回答你的问题,但请看一下www.chatjs.net。它也可以帮助你。

答案 4 :(得分:0)

您可以使用虚拟世界框架来实现如下系统:

http://www.virtualworldframework.com/web/example/demochat