小编给大家分享一下socket.io怎么即时通信前端配合Node,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、做网站、成都外贸网站建设公司、桐梓网络推广、小程序设计、桐梓网络营销、桐梓企业策划、桐梓品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供桐梓建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
首先我们需要
新建文件夹
并快速生成一个package.json文件
npm init -y //生成一个package.json
npm i express npm i socket.io
新建一个serverRoom.js文件
const express = require('express')const app = express()let port =3000app.get('/',(req,res,next)=>{ res.writeHead(200, { 'Content-type': 'text/html;charset=utf-8' }) res.end('欢迎来到express') next()})const server = app.listen(port,()=>{console.log('成功启动express服务,端口号是'+port)})
在当前文件所在位置cmd
node serverRoom.js //或者使用 快速更新serverRoom.js的变化 同步到当前打开的服务器 //可以通过 npm i nodemon -g 下载到全局 使用很是方便 不亦乐乎 nodemon serverRoom.js
成功启动
在浏览器看一下
也是没有问题的。下面我们继续写serverRoom.js
const express = require('express')const app = express()let port =3000app.get('/',(req,res,next)=>{ res.writeHead(200, { 'Content-type': 'text/html;charset=utf-8' }) res.end('欢迎来到express') next()})const server = app.listen(port,()=>{console.log('成功启动express服务,端口号是'+port)})//引入socket.io传入服务器对象 让socket.io注入到web网页服务const io = require('socket.io')(server);io.on('connect',(websocketObj)=>{ //connect 固定的 //链接成功后立即触发webEvent事件 websocketObj.emit('webEvent','恭喜链接websocket服务成功:目前链接的地址为:http://127.0.0.1:3000')})
前端html
myWebsocket
当服务启动的时候,前端页面打开会自动链接我们后端服务,链接成功触发 webEvent 事件(名称可以自己定义,前后得统一),前端监听webEvent事件 获取服务器传送过来的内容并通过alert进行了显示。
好的,上面没问题下面就也很好理解:
下面要实现的功能是在input输入框中输入东西,传入服务器,服务器返回数组,前端显示在页面
//当然只是为了学习功能,就不要在乎例子了
看前端Html
myWebsocket
服务端
const express = require('express')const app = express()let port =3000app.get('/',(req,res,next)=>{ res.writeHead(200, { 'Content-type': 'text/html;charset=utf-8' }) res.end('欢迎来到express') next()})const server = app.listen(port,()=>{console.log('成功启动express服务,端口号是'+port)})//引入socket.io传入服务器对象 让socket.io注入到web网页服务const io = require('socket.io')(server);let arr=['恭喜链接websocket服务成功:目前链接的地址为:http://127.0.0.1:3000']io.on('connect',(websocketObj)=>{ //connect 固定的 //链接成功后立即触发webEvent事件 websocketObj.emit('webEvent',JSON.stringify(arr)); //监听前端触发的 sendFunEvent 事件 websocketObj.on('sendFunEvent',(webres)=>{ arr.push(webres) //触发所以的 sendFunEventCallBack 事件 让前端监听 io.sockets.emit("sendFunEventCallBack", JSON.stringify(arr)); })})
在打开页面后,在input输入值,点击按钮触发sendFun函数,触发自定义事件 sendFunEvent并将input的value传送到服务器,服务器监听sendFunEvent事件,将数据push到数组中,又触发了sendFunEventCallBack事件,将数组JSON字符串化传到前端,前端监听sendFunEventCallBack事件,获取数组,JSON序列化,将数据循环到页面上,这是整个流程。
打开多个前端页面可以进行实时更新,可以进行聊天。
以上是“socket.io怎么即时通信前端配合Node”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!