Nodejs+Socket.io实现通讯实例代码


Posted in NodeJs onFebruary 13, 2017

目录结构

D:.
 │ package.json
 │ server.js
 │
 └─public
 index.html
 socket.io.js

需要的条件

  • socket.io.js 供前端界面初始化io
  • socket.io 供NodeJs端提供socket方法

socket.io.js存在于socket.io-client

socket.io存在于socket.io

演示的功能

  • 客户端发送消息给服务端
  • 后端触发事件告知客户端
  • 客户端离开触发服务端事件

服务端

server.js

var express = require('express'); 
var app = express();

var server = require('http').createServer(app);
var io = require('socket.io')(server);

app.use('/', express.static(__dirname + '/public')); 

server.listen(80);

//socket部分
io.on('connection', function(socket) {
  //接收并处理客户端的hi事件
  socket.on('hi', function(data) {
    console.log(data);

    //触发客户端事件c_hi
    socket.emit('c_hi','hello too!')
  })

  //断开事件
  socket.on('disconnect', function(data) {
    console.log('断开',data)
    socket.emit('c_leave','离开');
    //socket.broadcast用于向整个网络广播(除自己之外)
    //socket.broadcast.emit('c_leave','某某人离开了')
  })

});
  • connection用来处理socket链接事件
  • disconnect处理连接断开事件
  • 后端接受前端事件通过socket.on(EventName,function(date){})
  • 后端触发前端事件通过socket.emit(EventName,msg)

这个后端演示了,前端发送消息给后端,触发hi事件,hi事件通过回调在触发客户端定义的c_hi事件告知前端。

客户端

index.html

<!DOCTYPE html>
<html>

<head>
  <title>socket</title>
</head>

<body>


<button id="sendBtn">发送消息</button>

<button id="leaveBtn">离开</button>

</body>
<script type="text/javascript" src="./socket.io.js"></script>
<script type="text/javascript">
  var socket=io.connect('localhost:80'),//与服务器进行连接
    send=document.getElementById('sendBtn'),
    leave=document.getElementById('leaveBtn');

  send.onclick=function(){
    socket.emit('hi', 'hello!');
  }

  leave.onclick=function(){
    window.location.href="about:blank" rel="external nofollow" ;
    window.close()
    socket.emit('leave', 'leave');
  }

  //接收来自服务端的信息事件c_hi
  socket.on('c_hi',function(msg){
    alert(msg)
  })

  // socket.on('c_leave',function(msg){
  //   alert(msg)
  // })

</script>

</html>

Nodejs+Socket.io实现通讯实例代码

  • 发送消息按钮用来给服务端发送信息,触发服务端定义的hi事件。
  • 离开页面按钮用来离开页面,也就是socket会自动断开。触发服务端定义的disconnect。

源码下载:Socket_3water.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs实现获取某宝商品分类
May 28 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 #NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 #NodeJs
Nodejs实现短信验证码功能
Feb 09 #NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 #NodeJs
使用nodejs下载风景壁纸
Feb 05 #NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 #NodeJs
nodejs基础应用
Feb 03 #NodeJs
You might like
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PHPExcel笔记, mpdf导出
2016/05/03 PHP
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
JS交换变量的方法
2015/01/21 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
python 实现简单的FTP程序
2019/12/27 Python
python图片合成的示例
2020/11/09 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
大学自我评价
2014/02/12 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
小小的船教学反思
2014/02/21 职场文书
业务内勤岗位职责
2014/04/30 职场文书
个人委托书范文
2015/01/28 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书