博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node之socket.io实现websocket协议的简单例子
阅读量:6714 次
发布时间:2019-06-25

本文共 1764 字,大约阅读时间需要 5 分钟。

node 的 socket.io模块能帮助我们快速的实现websocket通信。

1. app.js  使用的是express配合socket.io,所以下载好相对应的包

let express = require('express')let app = express()let http = require('http').Server(app)// 创建io对象,就能访问socket.io.js文件let io = require('socket.io')(http)let session = require('express-session')app.use(session({            // 使用session是为了后面页面显示权限    secret: 'keyboard cat',    resave: false,    saveUninitialized: true}))let allUser = []app.set('view engine', 'ejs')app.use(express.static('./public'))    // public放置了JQ文件app.get('/', (req,res,next) => {    res.render('index')})http.listen(3000)复制代码

2. views/index.ejs   首页,输入姓名才可进入发言

    
复制代码

3. app.js  首页登录逻辑

app.get("check", (req,res,next) => {    let username = req.query.username    if(!req.query.username) {        res.send('必须输入用户名')    // 没有输入就不给跳转页面        return;    }     // 使用一个数组存入每次登录进去的用户 如果重名就报错 简单模仿用户重名 不需要的可以去掉    if(allUser.indexOf(username) != -1) {        res.send('用户名被占用')        return;    }    allUser.push(username)    req.session.username = username    res.redirect('/chat')    // 输入用户名后就可以进入发言室发言})复制代码

4. views/chat.ejs  发言室

    

小小发言室 欢迎:<%= username %>

    // 引入需要的js文件 相对的地址是 http://127.0.0.1:3000 复制代码

    5. app.js 完善好socket事件以及chat路由

    app.get('/chat', (req,res,next) => {    // 登录了就把username保存在session 如果未登录就不给进入发言    if(!req.session.username) {        res.redirect('/')        return;    }    res.render('chat', {        'username': req.session.username    })})io.on('connection', (socket) => {    socket.on('chat', (msg) => {        // 把接收到的 msg 原样的广播回去        io.emit('chat', msg)    })})复制代码

    这样就大功告成了,实现一个简单的websocket通讯。过程就是需要用到socket.io模块,引入后监听事件,然后作出响应,就实现了通讯。

    转载于:https://juejin.im/post/5c526226e51d450609346868

    你可能感兴趣的文章
    Libreboot 项目向开源社区示好和致歉
    查看>>
    Linux Kernel 4.9-rc8,4.9 分支最后一个候选版
    查看>>
    《Web异步与实时交互——iframe AJAX WebSocket开发实战》—— 2.2 相关关键技术及工作原理...
    查看>>
    《Nmap渗透测试指南》—第1章1.5节Mac OS安
    查看>>
    学习和使用 PHP 应该注意的10件事
    查看>>
    .NET Framework 源码
    查看>>
    centos上一键安装jdk、tomcat脚本
    查看>>
    ArrayList源码分析
    查看>>
    JS Object的静态方法汇总( 上 )
    查看>>
    jvm疯狂吞占内存,罪魁祸首是谁?
    查看>>
    sql server随机函数
    查看>>
    优朋普乐:OTT正重构电视版图
    查看>>
    Ubuntu 14.04 LTC 有线网络——网线不识别,灯不亮问题
    查看>>
    21_css布局2_浮动布局.html
    查看>>
    DateUtils 单元下的公用函数目录
    查看>>
    jQuery 练习[二]: 获取对象(1) - 基本选择与层级
    查看>>
    Sublime Text 2 快捷键用法大全
    查看>>
    linux非交互式生成秘钥
    查看>>
    C练习小代码-20151108
    查看>>
    以太坊RPC接口使用
    查看>>