基于websocket实现简单聊天室对话

 更新时间:2021年07月01日 17:21:11   作者:晚星@  
这篇文章主要为大家详细介绍了基于websocket实现简单聊天室对话,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了websocket实现简单聊天室对话的具体代码,供大家参考,具体内容如下

首先搭建一个node的环境,在app.js中写入以下代码

npm install socket.io-client

socket是一个高性能的服务器框架,开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。

npm install http-server

一般提供server服务,参数可以指定端口、地址等等,例如指定服务在8888端口启动,命令为:http-server src -p 8888

npm install koa

Koa 通过 node.js 实现了一个十分具有表现力的 HTTP 中间件框架,力求让 Web 应用开发和 API 使用更加地愉快。Koa的中间件之间按照编码顺序在栈内依次执行,允许您执行操作并向下传递请求(downstream),之后过滤并逆序返回响应(upstream)。

实现代码

// 引入依赖
const koa = require("koa")
// 初始化koa
const app = new koa()
// 开启 http 
var server = require("http").createServer(app.callback())
// 初始化 socket
const io = require("socket.io")(server, { cors: true })
// 监听
io.on('connection', (socket) => {
  // 主动向客户端发消息

  setTimeout(() => {
    // 通过io对象方法emit 触发一个自定义事件  并且向客户端发送消息
    io.emit('chat message', '想说点什么?')
  }, 1000)

  socket.on('disconnect', () => {
    console.log('user disconnected')
  })

  // 在服务器收到客户端的消息
  // 通过on方法监听事件  当客户端发送消息时会触发该事件 并且可以接受客户端发来的消息
  socket.on('chat message', (msg) => {
    console.log(msg)
    // msg为客户端发来的消息
    // 发消息给客户端是emit
    setTimeout(() => {
      msg = msg.replace("你", "我").replace("吗", "").replace("?", "!")
      // 触发事件 将处理之后的消息信息发送给客户端
      io.emit('chat message', msg)
    }, 500)
  })
})
server.listen(5522,()=>{
  console.log('socket服务已开启,端口号为5522')
});

调用这个服务

import { io } from 'socket.io-client'
cteated(){
    // 1.创建连接 可以自定义
    this.socket = io('ws://localhost:5522')
     // 2. 建立连接
    this.socket.on('connect', () => {
        console.log('建立连接成功了')
    })
    // 3.监听消息返回
    this.socket.on('chat message', msg => {
        console.log('服务回来的消息', msg)
    })
}

这样就能进行一个简单的人工智能对话了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Nodejs在局域网配置https访问的实现方法

    Nodejs在局域网配置https访问的实现方法

    做一个局域网WebRTC视频聊天系统,需要用到HTTPS。因此,配置Node.js使其支持HTTPS访问。这篇文章主要介绍了Nodejs在局域网配置https访问的实现方法,需要的朋友可以参考下
    2020-10-10
  • 一文详解node.js有哪些全局对象呢

    一文详解node.js有哪些全局对象呢

    这篇文章主要介绍了一文详解node.js有哪些全局对象呢,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • Node.js DES加密的简单实现

    Node.js DES加密的简单实现

    下面小编就为大家带来一篇Node.js DES加密的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • node.js错误处理之npm无法下载第三方包

    node.js错误处理之npm无法下载第三方包

    这篇文章主要给大家介绍了关于node.js错误处理之npm无法下载第三方包的相关资料,文中通过代码介绍的非常详细,对大家的学习或者工作具有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • node故障定位顶级技巧动态追踪Dynamic Trace详解

    node故障定位顶级技巧动态追踪Dynamic Trace详解

    这篇文章主要为大家介绍了node故障定位顶级技巧动态追踪Dynamic Trace详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • NodeJS学习笔记之Connect中间件应用实例

    NodeJS学习笔记之Connect中间件应用实例

    前面我们介绍了几篇内容的connect中间件的基础知识,今天我们来实例应用一下,做个记事本的小应用,希望大家能够喜欢。
    2015-01-01
  • 最流行的Node.js精简型和全栈型开发框架介绍

    最流行的Node.js精简型和全栈型开发框架介绍

    这篇文章主要介绍了最流行的Node.js精简型和全栈型开发框架介绍,本文讲解了Express.js、KOA、Total.js、Sails.js、Meteor、Mean.IO等框架,需要的朋友可以参考下
    2015-02-02
  • node+koa2+mysql+bootstrap搭建一个前端论坛

    node+koa2+mysql+bootstrap搭建一个前端论坛

    本篇文章通过实例给大家分享了用node+koa2+mysql+bootstrap搭建一个前端论坛的步骤,有需要的朋友参考下。
    2018-05-05
  • nvm管理node无法正常切换node版本问题的解决方法

    nvm管理node无法正常切换node版本问题的解决方法

    相信一定会有存在一些小伙伴 明明都已经按着操作卸载node 和安装nvm 了但是 依旧无法正常通过nvm管理node,本文将给大家介绍nvm管理node无法正常切换node版本问题的解决方法,需要的朋友可以参考下
    2024-01-01
  • node.js中Buffer缓冲器的原理与使用方法分析

    node.js中Buffer缓冲器的原理与使用方法分析

    这篇文章主要介绍了node.js中Buffer缓冲器的原理与使用方法,结合实例形式分析了node.js Buffer缓冲器的基本概念、原理、创建、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-11-11

最新评论