文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

本文实例为大家分享了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)
    })
}

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯