nodejs做服务端多功能的简单实现

nodejs 做服务端基本功能实现

http服务

  • express 模块

数据库服务

  • mysql模块

UDP消息下发和接收

  • dgram 模块
  • 服务端:echoServerUdp.js
  • 客户端:echoClientUdp.js
  • web服务器中一般使用udp的客户端将页面的udp消息请求转发到java,c程序等,详见login.js(41-81)

websocket服务,实现简单的聊天服务器和页面数据实时刷新

  • ws 模块
  • websocket的服务端开启的是基于tcp的双工通信,可与nodejs服务写在一起,同时开启即可(注意端口不能冲突),详见login.js(84-110)

nodejs http请求拦截器

  • 作用: 防止未登录的用户或权限不够的用户访问数据库等资源文件夹,造城不安全隐患
  • 实现原理: nodejs的http请求可以被多级过滤,例如请求: ‘/getData’ 这个接口,可以先经过 ‘/*’ 来判断请求中是否有合法的cookie 或 session ,验证通过后,调用 next() 方法可将该请求交给 app.post(‘/getData’) 继续处理
  • 详见 login.js(116-147)
  • 作用:用户身份认证,用户登录限制
  • 原理: cookie是http请求头中的一个字段,内容是一个json,其中的sid等字段都可以在服务端设置,也可以在收到客户端请求是拿来验证用户身份
  • 详见:login.js 中的http请求拦截器和 ‘/login’ 接口

vue + axios 前后端交互的实现

axios 的http请求拦截和响应拦截

  • 作用: 请求拦截可以给每次发起的http请求都加上相同的字段,例如: www/index.html 中除了登录请求以外的所有http请求都加了 { user: ‘admin’} 请求参数;响应拦截可以针对服务端发送过来的异常数据做拦截,然后做出对应的处理
  • 优势: 可以大大减少相同的代码的书写次数,精简代码,同时也可以大大降低错误几率
  • 注意: http请求拦截和响应拦截方法的作用域,尽量设置为全局方法,以免漏掉某些请求

websocket协议实现简单的web聊天

  • 原理:用户先向服务端发送一次http请求,服务端的websocket端口收到该请求后将本次http协议请求升级到基于tcp通信的websocket协议,并与该客户端形成一条互相通信的通道,此间服务端可主动向客户端发送数据,客户端的onmessage方法可接收并处理服务端发送过来的消息,直到服务端发起关闭通道的消息才结束
  • 客户端:详见 www/js/wsClint.js
  • socket = new WebSocket(“ws://192.168.0.21:8081/”); 开启websocket客户端连接
  • websocket的属性方法: 详见W3C: https://www.w3cschool.cn/html5/html5-websocket.html
  • 聊天室就是基本的显示一些信息,点击发送按钮时,向服务端发送tcp消息即可

websocket实现表格实时刷新

  • 原理同上
  • 优势: 相较于页面设置定时器定时发起http请求查询数据库的方法,这样的刷新占用系统内存更少
  • 适用场景: 需要实时刷新,并且长时间监测的页面(如股票K线图等)
  • 客户端:详见 www/js/wsClint.js
  • 消息处理详见: www/index.html

代码仓库:https://coding.net/u/xean/p/lxy_node/git

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值