NodeJS+Socket.io+ExpressJS实现web聊天应用

       NodeJS使我在写后端代码时,能够使用我最喜欢的语言之一:JavaScript。它是构建实时应用的完美技术。在本教程中,我会告诉你使用ExpressJSSocket.io如何建立一个网络聊天应用程序

    

       配置环境

    当然,要做的第一件事就是在系统上安装NodeJS如果你是一个Windows或Mac用户,您可以访问nodejs.org并下载安装程序。如果改为喜欢Linux的,我建议你参考这个链接虽然我不会进入进一步的细节在此,如果您遇到任何安装问题,我很乐意帮助。

        

      一旦你安装的NodeJS,你就可以设置所需要的工具。

    1. ExpressJS -这将管理服务器和用户响应
    2. Jade -模板引擎
    3. Socket.io -允许在前端和后端之间的实时通信
  1.       继续,一个空的目录中,创建有以下内容的package.json文件。

      使用控制台(Windows下 - 命令提示符),浏览到您的文件夹,然后执行:

1
npm install

       几秒钟内,你必须全部下载到必要的依赖node_modules目录。

 
           

           

          上面,我们已经创建了一个应用程序,并确定了它的端口。接下来,我们注册的路由,其中​​,在这种情况下,是没有任何参数的简单GET请求。现在,路由的处理程序仅仅发送一些文本给客户端。最后,当然,在底部,我们运行服务器。初始化应用程序,从控制台执行:

           服务器正在运行,所以你应该能够打开http://127.0.0.1:3700/看到:

            It works!

            现在,不是为了“It  works”,我们应该服务于HTML。相对于纯HTML,也是有利的使用模板引擎。Jade是一个很好的选择,它和ExpressJS良好的整合到了一起。这是我在我自己的项目中通常使用的。创建一个目录,名为TPL,并把下面的page.jade文件写成这样:

           

!!!
html
     head
         title= "Real time web chat"
     body
         #content(style='width: 500px; height: 300px; margin: 0 0 20px 0; border: solid 1px #999; overflow-y: scroll;')
         .controls
             input.field(style= 'width:350px;' )
             input.send(type= 'button' , value= 'send' )

          Jade的语法不是很复杂,但是,对于一个完整的指南,我建议你参考jade-lang.com为了使用Jade与ExpressJS,我们需要进行以下设置。

           此代码告知EXPRESS,你的模板文件在哪,并且要使用什么模板引擎。这一切都指定了将处理模板的代码的功能。一切都配置好,我们可以使用response对象的.render方法

,发送我们的Jade代码给用户。

           这一点上,

输出没有什么特别; 无非更多div元件(具有ID 的content),这将在作为用于保存聊天消息,两个控制(输入区域和按钮),这我们将用于发送消息。

           因为我们将使用前端逻辑外部JavaScript文件,我们需要告知ExpressJS到哪里寻找这些资源。创建一个空目录public以及在调用.listen方法之前添加如下内容:

           

             到现在为止还挺好; 我们有成功响应GET请求的服务器。现在,是时候添加Socket.io整合。改变这一行:
           
 

to:




      

      NodeJS是一个非常有用的技术,并为我们提供了动力和欢乐的很多,考虑的事实,我们可以写纯JavaScript时尤其如此。正如你所看到的,只用几行代码,我们成功地写出一个全功能的实时聊天应用程序。漂亮整洁!

         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值