长连接:客户端向服务器段发请求建立链接,一旦建立成功,客户端就可以向服务器发送数据,服务器接受并处理,返回相应后连接不断开

优点:实时通讯,

短连接:客户端向服务器发送建立连接,一旦建立成功,客户端就可以像服务器端请求数据,服务器接收并处理,返回响应后连接立即断开,若想重新发请求,则需要重新建立连接

优点:节省服务器端资源,

如何建立客户端与服务器端之的websocket连接实现通讯?

Socket.io

socket.io是一个浏览器与服务器之间提供实时,双向,基于事件通讯的网络通信库框架,基于websocket协议,提供相关的api,方便实现客户端与服务器之间的长连接通讯,

建立websocket连接,

服务端:

1.建立node.js

2.初始化npm项目,安装socket.io模块

npm init

npm install --save socket.io

3.编写index.js,在代码中通过socket.io接收客服端建立连接

const socketio= require('socket.io')(http,{

    cors:{

        origin:'*'

    }

})

 为了解决跨域的问题

客服端:

1.新建html 网页  通过script  标签引入socket.io.js

2.通过socket.io.js   向服务端建立长连接

实现websocket通信

升级版本~~~~

之后请关注

使用node.js和Socket创建实时通讯聊天室。相关推荐

  1. node.js入门 - 2.创建一个简单聊天室

    这篇文章将通过开发一个简单聊天室的方式,介绍node.js的net模块. 一.第一版,只向客户端发送信息   我们先实现一个简单的版本,代码如下: var net=require('net'); va ...

  2. Node.js 和Socket.IO 实现chat

    使用 Node.js 和 Socket.IO 构建简单的聊天程序 在node.js根目录下创建文件夹chat,里面添加两个文件:app.js和index.html app.js var fs = re ...

  3. TWaver HTML5 + Node.js + express + socket.io + redis(六)

    接上一篇TWaver HTML5 + Node.js + express + socket.io + redis(五), 这一篇将讲解如何用模版生成html页面, 如何验证用户登录, 您将了解到: 1 ...

  4. vue js 对象下的原型_如何使用Vue.js和Pusher创建实时原型反馈应用程序

    vue js 对象下的原型 by Neo Ighodaro 由新Ighodaro 如何使用Vue.js和Pusher创建实时原型反馈应用程序 (How to create a realtime pro ...

  5. Java 接受reactjs数据_[Java教程]react.js 父子组件数据绑定实时通讯

    [Java教程]react.js 父子组件数据绑定实时通讯 0 2017-09-23 17:00:14 import React,{Component} from 'react'import Reac ...

  6. TWaver HTML5 + Node.js + express + socket.io + redis(五)

    接上一回TWaver HTML5 + Node.js + express + socket.io + redis(四), 这一篇您将了解到 1. 如何保存更改后的拓扑数据 (包括新增的, 修改的, 删 ...

  7. Express+Socket.IO 实现简易聊天室

    代码地址如下: http://www.demodashi.com/demo/12477.html 闲暇之余研究了一下 Socket.io,搭建了一个简易版的聊天室,如有不对之处还望指正,先上效果图: ...

  8. 基于socket.io的web聊天室

    基于socket.io的web聊天室 一. 项目介绍 该项目使用node.js作为后端服务器框架,并利用socket.io来实现web聊天室功能.socket.io是由 JavaScript 实现的基 ...

  9. Socket编程实现简易聊天室

    1.Socket基础知识 Socket(套接字)用于描述IP地址和端口,是通信链的句柄,应用程序可以通过Socket向网络发出请求或者应答网络请求. Socket是支持TCP/IP协议的网络通信的基本 ...

最新文章

  1. 从测试角度对测试驱动开发的思考【转】
  2. Node.js Event loop 图解
  3. mac怎么查node版本_py2neo基本操作(v4版本,亲测有效)
  4. drupal建站系统_容器将如何塑造Drupal生态系统
  5. php lpop 返回null,数据库读取数据返回 null 怎么办?
  6. 如何使用android studio,怎么学习使用Android Studio?
  7. 成都Uber优步司机奖励政策(3月28日)
  8. php7.1 集成php fpm,LNMP建站教程(2):安装 PHP 7.1 与 PHP7.1-FPM以及与Nginx集成
  9. CocoaPods管理iOS项目 2018年11月06日
  10. openlayers 加载高德底图
  11. tp3.2 自动加载
  12. 2014程序化购买元年-芒果移动广告-王江
  13. 老干部活动中心计算机台数,老干部活动中心设计方案
  14. minitab学习系列(1)--二项式分布过程能力分析
  15. SDN亟需一个WinTel联盟
  16. 身材与攻打全体变得有些扭曲怪僻文学会员手打
  17. 《人体解剖学(基础医学)》
  18. 成功上岸国科大研究生!
  19. 什么是中台系统以及挑战和解决方案?
  20. 华为交换机S5700故障系统文件丢失处理

热门文章

  1. mui与html5 plus有什么关系,mui.init()与mui.plusReady()区别和关系
  2. 视频教程-Excel下拉菜单怎么做 Excel排序高手技巧视频教程-Office/WPS
  3. 出行限号小程序,限行小程序
  4. 关于知乎和csdn “提问“感触
  5. 利用条件函数判断计算机这课成绩及格情况,如何用Excel表格中的if函数来判断成绩及格不及格...
  6. 身份证号码填写合法性验证的小方法,参数就是身份证号码
  7. Android 程序分析环境搭建-静态分析环境搭建
  8. 一季度市占率6.2%,跌出排行榜,华为手机2022年或跌破2000亿?
  9. Docker卸载方法
  10. 让python飞:形象理解python 栈、队列、lambda、生成器、迭代器、模块