websocket聊天室怎么设置(基于websocket实现简单聊天室对话)
类别:编程学习 浏览量:1954
时间:2021-10-15 00:05:06 websocket聊天室怎么设置
基于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) }) }
这样就能进行一个简单的人工智能对话了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- html5socket源码(五分钟学会HTML5的WebSocket协议)
- python测试websocket接口(Python如何爬取实时变化的WebSocket数据的方法)
- thinkphp接口开发实例(ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解)
- nodejs实现websocket服务端(Node.js+express+socket实现在线实时多人聊天室)
- vue使用websocket的详细步骤(vue使用webSocket更新实时天气的方法)
- vue websocket实时刷新数据(Vue+WebSocket页面实时刷新长连接的实现)
- websocket聊天室怎么设置(基于websocket实现简单聊天室对话)
- vue-websocket 组件教程(Vue+express+Socket实现聊天功能)
- django对话框(基于django channel实现websocket的聊天室的方法示例)
- SCI检索 SSCI检索 EI检索 ISTP检索 CSCD检索简介(SCI检索SSCI检索EI检索)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
- 硕博期刊 SCI SSCI CSSCI分不清 一文带你看懂主流期刊分类(硕博期刊SCISSCI)
- 辱华品牌新百伦官宣新代言人IU,个别粉丝希望get爱豆同款(辱华品牌新百伦官宣新代言人IU)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
热门推荐
- javascript学习参数(详解JavaScript堆栈与拷贝)
- docker容器重启配置没了(docker修改未启动容器的配置信息操作)
- asp.net 日期格式化
- php依赖注入和控制反转的区别(php反射学习之依赖注入示例)
- python中if语句应学会什么(Python基础之条件控制操作示例if语句)
- python列表中的数组(Python3.4学习笔记之列表、数组操作示例)
- php标签怎么写(php 使用mpdf实现指定字段配置字体样式的方法)
- django学生管理系统搭建(Django实现学员管理系统)
- vue树形表格内容太长(VUE 无限层级树形数据结构显示的实现)
- php中function函数的用法(PHP中quotemeta函数的用法讲解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9