当前位置: 首页 > news >正文

公司网站需要备案绵阳网络推广公司

公司网站需要备案,绵阳网络推广公司,我的qq中心网页版,虹口网站开发培训课程前言 最近想做一个聊天,但是网上的很多都是不能实现的,要么就是缺少代码片段很难实现websocket的链接,更别说聊天了。自己研究了一番之后实现了这个功能。值得注意的是,我想在小程序中使用socket.io,不好使&#xff0…

前言

最近想做一个聊天,但是网上的很多都是不能实现的,要么就是缺少代码片段很难实现websocket的链接,更别说聊天了。自己研究了一番之后实现了这个功能。值得注意的是,我想在小程序中使用socket.io,不好使,可能是个人技术不到位的问题吧,没有实现。但是使用websocket可以完成这个功能。

环境准备

node @14.16.1

express @4.19.2

vsocde

HbuilderX

微信开发者工具

后端的依赖

后端代码

app.js文件的代码

// express具体使用看我提供个文章中有
const express = require('express')
const app = express()
const websocket = require('websocket').server
const http = require('http')const httpServer = http.createServer().listen(3000,()=>{console.log('http server is running at port 3000');
})
const websocketServer = new websocket({httpServer: httpServer,autoAcceptConnections: false
})const conArr = []websocketServer.on('request', function(request) {// 这就是一次客户端发送的消息// websocket 需要将这个链接保存起来// 只要客户端和服务器没有断开,这个链接必须在// 客户端与服务端的通信都是从这个链接上通信const connection = request.accept()// 每次接收一个链接,将它存放在数组里面conArr.push(connection)// 监听客户端发送的消息connection.on('message', function(message) {console.log(message);// 发送消息给客户端(广播到各个客户端)// 后面加上 utf8Data 编码// 要将所有的链接全部发出去,才可以让每个客户端接收到其他传来的数据for(let i = 0; i < conArr.length; i++) {conArr[i].send(message.utf8Data)}})
})app.get('/', (req, res) => {res.send('Hello World!')
})app.listen(8080, () => {console.log('Express server is running at port 3000');
})

简单分析一下,websocket是基于http协议的所以要导入http模块,express和websocket监听的端口不一样,这样的话前端可以调用存储聊天信息的接口往数据库表中插入聊天信息,这样就可以完成聊天记录的存储,现在这个demo就是做了一个简单的websocket的链接和简陋的聊天界面。后续会完善一个开源项目完成聊天的功能、撤回和聊天记录回显的功能。

前端代码(uniapp)

<template><view>姓名:<input type="text" v-model="name" />话语:<input type="text" v-model="text" /><button @click="onSumbit">发送</button></view>
</template>
<script>export default{data(){return{name:'',text:''}},onLoad() {this.getLink()},methods:{// 在页面或组件的方法中调用,初始化链接websocketgetLink(){uni.connectSocket({url: 'ws://127.0.0.1:3000',success() {console.log('WebSocket连接成功');},fail(err) {console.error('WebSocket连接失败', err);}});},// 收到信息getJieShouMessage(){uni.onSocketMessage(function (res) {console.log('收到消息:', res.data);});},// websocket发生了错误getErrorMessage(){uni.onSocketError(function (err) {console.error('WebSocket错误:', err);});},// websocket关闭getSocketGuanBi(){uni.onSocketClose(function () {console.log('WebSocket连接已关闭');});},// 如果不需要的话就关闭websocketgetCloseThisLiaotian(){uni.closeSocket({code: 1000,  // 关闭连接的状态码,可选reason: '用户关闭连接',  // 关闭连接的原因,可选success() {console.log('WebSocket连接已关闭');},fail(err) {console.error('WebSocket关闭失败', err);}});},// 这个是点击发送信息onSumbit(){var that = thislet values={name:this.name,context:this.text}uni.sendSocketMessage({data: JSON.stringify(values),success() {console.log('消息发送成功');that.getJieShouMessage()},fail(err) {console.error('消息发送失败', err);}});}}}
</script>

注意

getLink(){uni.connectSocket({url: 'ws://127.0.0.1:3000',success() {console.log('WebSocket连接成功');},fail(err) {console.error('WebSocket连接失败', err);}});},

这段代码中,需要初始化调用,进行链接websocket,url是ws协议,线上的地址需要wss协议,具体可以参考微信官方的wss协议要求,我这demo是微信小程序。

效果图

通过上图可以看见可以及时的收到信息,前端拿到信息进行渲染就可以完成websocket的及时通讯了。

http://www.yayakq.cn/news/578112/

相关文章:

  • 用自己的电脑做网站划算客户拒绝做网站的理由
  • 北京商城网站建设公司完整网站开发视频
  • 建模网站素材沧州市政务服务大厅
  • 平陆县网站建设wordpress瀑布流网店
  • 网站后台管理 ftp网络营销的优势有哪些
  • 做啥网站能挣钱wordpress主题 错误
  • 大连网站建设那家好博主回应网络热梗
  • 网站租用服务器费用潮阳网站建设公司
  • 网站建设的重要一块钱购物网站
  • 网站设计专业就业方向有哪些青岛网络推广的有哪些公司
  • 课程网站资源建设小结公司注册多久能查到
  • seo网站模板下载厦门网站建设方案开发
  • 网站正在建设中 敬请期待网站推广具体内容简要说明
  • 建站公司技术服务费wordpress社区主题
  • 营销型网站建设哪好信用中国 网站 建设方案
  • dedecms下载站虚拟主机是啥
  • 私人家庭影院5577兰州模板网站seo价格
  • 承德网站设计公司微信显示个人网站
  • 系统难还是网站设计难做上海网站制作建设是什么
  • 做地方门户网站的排名做快递网站难吗
  • 平板电脑可以做网站不cms网站管理系统源码
  • 高明铝业网站建站网站开发 分工
  • 品牌型网站设计wordpress广告管理
  • 如何建设彩票网站成都设计网站的公司名称
  • 康保网站建设网站建设制作设计seo优化湖北
  • 找人做个网站大概多少钱网站建设的技术要求
  • 天津工程建设协会网站做自行车车队网站的名字大全
  • 网站seo百度百科网站设置在哪里找到
  • 网站制作业务做网站推广哪些
  • 网站开发静态怎样转成动态wordpress mip 插件