用node搭建简易服务器vue和socket.io完成一对多聊天功能

领导给我安排个工作,让我自己研究一下前端自己完成页面聊天功能,我就在网上找了多个,不是太过复杂,就是实用性讲解不全

我结合这些,研究了一个,和他们类似的

先说一下思路:

1.先要安装几个依赖

2.建立服务端,在vue项目中服务端就是单独建立一个文件夹,然后js文件(详见下文)

3.建立客户端

4.建立联系

1.安装依赖

npm install -s socket.io

npm install -s vue-socket.io

npm install -s socket.io-client

2.建立服务端

(1)在vue的根目录中新建一个文件夹起名server

(2)在server中建立js文件,起名app.js

(3)在app.js中写如下服务代码

var sever = require('http').createServer();
var io = require('socket.io')(sever)

io.on('connection', function (socket) {
  socket.on('login', function (data) { // 接收连接中的login事件
    console.log(data);
    io.emit('loginmsg', '你发过来的数据是:' + data) // 发送回去 事件名为loginmsg
  })

})
console.log('socket端口:1234');
sever.listen(1234)

(4)在package.json中的scripts添加下面这段代码

"server": "node server/app.js"

(5)之后,在文件中启动

npm run server,这样会打印出socket端口:1234

3.客户端,正常按照写vue组件的方法,写如下组件

<template>
  <div>
    <div> 
      <input type="text" v-model="msg">
      <button @click='Login'>向8000端口发送数据</button>
      {{backdata}}
    </div>
 
  </div>
</template>
<script>
export default{
  data:function (){
    return {
      msg:"aaaa",
      backdata:'',
    }
  },
  sockets:{ //在此接收又服务器发送过来的数据 ps:注意此处的方法名要与服务器的发送的事件保持一致才能接收到
   connect:function() {      //与ws:127.0.0.1:8000连接后回调
    console.log('连接成功');
   },
   loginmsg:function(value) {
    console.log(value);//监听login(后端向前端emit login的回调)
    this.backdata=value;
   }
  },
  methods:{
    Login(){
      this.$socket.emit('login',this.msg);
    }
  }
    
 }
</script>

4.服务器端和客户端建立联系

在main.js中引入

import VueSocketio from 'vue-socket.io'
import socketio from 'socket.io-client'
Vue.use(VueSocketio, socketio('ws://127.0.0.1:8000')) // 与websocket服务端链接

服务端运行这个:npm run server

最后运行项目:npm run dev

客户端和服务器端要在两个窗口下运行

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值