const server = require('http').createServer() const socketIo = require('socket.io')(server) const CreatePoint = require('./CreatePoint.js') // 全部已链接的客户端 socketIo.on('connection', (client) => { // console.log(client) // 断开时删除 client.on('disconnect', () => { // 。。。 }) // 当客户端触发setPoint事件以后,socket就向客户端推送新的坐标 client.on('setPoint', (point) => { console.log(point) // 1. 建立一个创造坐标的实例 let CreateCustomPoint = new CreatePoint(point) // 每隔3秒向客户端推送一次坐标 setInterval(() => { client.emit('newPoint', CreateCustomPoint.randomAction()) }, 3000) }) }) server.listen(3000, '192.168.1.202', () => { console.log('this server is listening on port 3000') })
先须要链接到socket前端
import VueSocketIo from 'vue-socket.io' Vue.use(new VueSocketIo({ debug: true, // 这里的地址就是后端地址 connection: '192.168.1.202:3000', vuex: { store, actionPrefix: 'SOCKET_', mutationPrefix: 'SOCKET_' } // options: { path: "/my-app/" } }))
sockets: { // socket服务器链接时触发 connect: () => { console.log('已成功链接到socket服务器') }, // 接收socket服务器推送的newPoint事件 newPoint(point) { console.log(`接收到socket服务器的新坐标${point}`) // console.log(this) this.points.push(point) // 关闭原来的标志物 this.mkrTool.close() this.map.clearOverlays() // this.map.centerAndZoom(point, 15) // 在新坐标添加覆盖物 this.freshOverlay(point) } },
github: https://github.com/lyttonlee/...vue