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实现批量下载妹纸图
May 28 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
简单实现nodejs上传功能
Jan 14 NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 NodeJs
一文秒懂nodejs中的异步编程
Jan 28 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
玩转虚拟域名◎+ .
2006/10/09 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
python中的一些类型转换函数小结
2013/02/10 Python
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python中字符串对齐方法介绍
2015/05/21 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
什么是网络协议
2016/04/07 面试题
廉洁校园实施方案
2014/05/25 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
如何写好开幕词?
2019/06/24 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python