NodeJS简单实现WebSocket功能示例


Posted in NodeJs onFebruary 10, 2018

本文实例讲述了NodeJS简单实现WebSocket功能。分享给大家供大家参考,具体如下:

我们基于expresssocket.io开发,首先我们需要安装以下包

npm install --save express
npm install --save socket.io

服务器端代码:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
  res.send('<h1>Welcome Realtime Server</h1>');
});
io.on('connection', function(socket){
  console.log('a user connected');
  socket.on("disconnect", function() {
    console.log("a user go out");
  });
  socket.on("message", function(obj) {
    io.emit("message", obj);
  });
});
http.listen(3000, function(){
  console.log('listening on *:3000');
});

客户端代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="http://127.0.0.1:3000/socket.io/socket.io.js"></script>
</head>
<body>
  <ul id="message"></ul>
  <script>
    socket = io.connect('ws://127.0.0.1:3000');
    socket.emit("message", {"name" : navigator.userAgent, "msg" : "hello world"});
    socket.on("message", function(obj) {
      console.log(obj);
    });
  </script>
</body>
</html>

一个控制台版的聊天室做好了(^o^)/~

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
NodeJS url验证(url-valid)的使用方法
Nov 18 NodeJs
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 NodeJs
nodejs 的 session 简单使用
Jun 06 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
nodejs动态创建二维码的方法
Aug 12 NodeJs
NodeJS收发GET和POST请求的示例代码
Aug 25 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
使用nodejs分离html文件里的js和css详解
Apr 12 NodeJs
Nodejs 识别图片类型的方法
Aug 15 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
Feb 07 #NodeJs
nodejs中Express与Koa2对比分析
Feb 06 #NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 #NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 #NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 #NodeJs
使用npm安装最新版本nodejs
Jan 18 #NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 #NodeJs
You might like
php购物车实现方法
2015/01/03 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
jQuery的一些注意
2006/12/06 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python中按键来获取指定的值
2019/03/02 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
django 读取图片到页面实例
2020/03/27 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
家长会邀请书
2014/01/25 职场文书
师范生求职自荐信
2014/06/14 职场文书
室内趣味活动方案
2014/08/24 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
2014年财政所工作总结
2014/11/22 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang