其实官网文档清楚了  https://socket.io/get-started/chat/

但是因为之前写的是nodejs+express, socket.io是后加的, 还是有小坑

服务器端:

官网代码

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http); app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
}); io.on('connection', function(socket){
console.log('a user connected');
}); http.listen(3000, function(){
console.log('listening on *:3000');
});

注意这里是http.listen而不是app.listen!

如果是app.listen  客户端会打开web页面,  但一直报连不上socket.io 404 not found

2 注意它用的是 app.get('/')

也可以直接用1行static

// app.get("/", (req, res) => res.send("Hello World!"));

app.use(express.static(config['PATH_OVERLAY_STATIC']))

但必须注释掉app.get('/')

客户端:

必须用socket.io-client否则会报错.

注意官网和github用法不同

https://socket.io/get-started/chat/

io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
});

github https://github.com/socketio/socket.io-client

<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io('http://localhost');
socket.on('connect', function(){});
socket.on('event', function(data){});
socket.on('disconnect', function(){});
</script> // with ES6 import import io from 'socket.io-client'; const socket = io('http://localhost');

区别是io 似乎不再提供io.on 这样的connect 事件了, 直接只使用

socket.on('connect', function(){});

但是现在socket.io-client基本没什么更新了. 先按github的方法用把.

nodejs+express+socket.io的更多相关文章

  1. NodeJS+Express+Socket.io的一个简单例子

    关键字:NodeJS,Express,Socket.io. OS:Windows 8.1 with update pro. 1.安装NodeJS:http://nodejs.org/. 2.初始化一个 ...

  2. nodejs之socket.io 聊天实现

    写在前面:最近很火的“996”话题,可谓是引起一片热议,马老师说:能够996应该是幸运的,996是对奋斗者的一种机遇(记得不是很清楚).996缺少的是自己的空闲时间了,当我是空闲的时候偶尔996挺好的 ...

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

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

  4. nodejs学习(3) express+socket.io

    //node var express=require('express'); var app = express(); var server = require('http').createServe ...

  5. 在web浏览器上显示室内温度(nodeJs+arduino+socket.io)

    上次的nodejs操作arduino入门篇中实现了如何连接arduino.这次我们来实现通过arduino测量室内温度并在浏览器上显示出来. [所需材料] 硬件:LM35温度传感器,arduino u ...

  6. Node.js下基于Express + Socket.io 搭建一个基本的在线聊天室

    一.聊天室简单介绍 采用nodeJS设计,基于express框架,使用WebSocket编程之 socket.io机制.聊天室增加了 注册登录模块 ,并将用户个人信息和聊天记录存入数据库. 数据库采用 ...

  7. nodejs之socket.io模块——实现了websocket协议

    Nodejs实现websocket的4种方式:socket.io.WebSocket-Node.faye-websocket-node.node-websocket-server,主要使用的是sock ...

  8. node+express+socket.io+mysql=通讯服务器搭建(一)

    首发github/blog 欢迎大家评论给星 安装 首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后安装express-generator应用骨架 $ mkdir node-d ...

  9. node+express+socket.io制作一个聊天室功能

    首先是下载包: npm install express npm install socket.io 建立文件: 服务器端代码:server.js var http=require("http ...

随机推荐

  1. deviceMotion.userAcceleration加速度方向

    ios坐标系如图中所示,假设手机受到1个沿X正方向的力(假设该力产生了1m/s^2的加速度),那么deviceMotion.userAcceleration的值为多少呢? 答案是违反常识的:devic ...

  2. go 语言图片像素点处理

    将一张图片色彩反转,就是将  rgb 值,分别被 255 减 package main import ( "bytes" "fmt" "image&q ...

  3. Zepto源码分析之二(新旧版本zepto.Z方法的区别)

    在上一节中讲到Z()方法,是在初始化函数init中直接调用zepto.Z() zepto.Z = function(dom, selector) { dom = dom || [] dom.selec ...

  4. Jenkins官方社区携手灵雀云成功举办Jenkins Meetup

    10月27日,由 Jenkins 官方社区和灵雀云主办的 Jenkins 插件开发 Meetup 在北京中科曙光大厦成功举办.这是Hacktoberfest(即 Hack October Festiv ...

  5. centos上发布部署python的tornado网站项目完整流程

    先说下大体上的做法,开发环境上要新弄一个 virtualenv的环境,在这个里面放你的开发调试,当然这个其实也不是必须的,但是这样会方便管理一些. 再在centos上也弄一个 virtualenv虚拟 ...

  6. 279. Perfect Squares(动态规划)

    Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 1 ...

  7. Javascript学习-简单测试环境

    Javascript学习-简单测试环境 在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很 ...

  8. Ubuntu 安装第三方工具

    1. pycharm  安装(链接:https://pan.baidu.com/s/1fIp-AhBmnPvqYW40140RLw     提取码:ukkv ) 1.运行以下命令安装 sh pycha ...

  9. appium工作原理

    Appium原理 面试的时候,被问到appium原理,一点不会,实在尴尬.大家可以直接翻看原作https://blog.csdn.net/jffhy2017/article/details/69220 ...

  10. vue 定义全局函数,监听android返回键事件

    vue 定义全局函数,监听android返回键事件 方法一:main.js 注入(1)在main.js中写入函数Vue.prototype.changeData = function (){ aler ...