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 11 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
nodejs之请求路由概述
Jul 05 NodeJs
Nodejs全栈框架StrongLoop推荐
Nov 09 NodeJs
学习 NodeJS 第八天:Socket 通讯实例
Dec 21 NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
详解nodejs微信jssdk后端接口
May 25 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
php遍历删除整个目录及文件的方法
2015/03/13 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
js获得页面的高度和宽度的方法
2014/02/23 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
js密码强度校验
2015/11/10 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
python自动安装pip
2014/04/24 Python
用实例解释Python中的继承和多态的概念
2015/04/27 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
使用python 3实现发送邮件功能
2018/06/15 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
车工岗位职责
2013/11/26 职场文书
数控专业应届生求职信
2013/11/27 职场文书
初中同学聚会感言
2014/02/11 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2016年五一促销广告语
2016/01/28 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书