1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- const util = require('./util.js')
- function match(page, app, opt) {
- const that = page
- if (app.appData.tunnelStatus !== 'close') {
- app.tunnel.close()
- }
- app.tunnelCreate()//新建信道,并监听相关变化
- const tunnel = app.tunnel
- function getCurrentTunnelId() {
- return app.tunnel.socketUrl.slice(app.tunnel.socketUrl.indexOf('tunnelId=') + 9, app.tunnel.socketUrl.indexOf('&'))
- }
- app.tunnelConnectCallback = () => {
- let userInfo = that.data.userInfo
- userInfo.tunnelId = getCurrentTunnelId()
- that.setData({
- status: '已连接,对手匹配中...',
- userInfo,//用户信息存储当前的信道ID
- })
- tunnel.emit('updateMatchInfo', {//发起匹配
- openId: that.data.openId,
- sortId: opt.sortId,
- friendsFightingRoom: opt.friendsFightingRoom//匹配者含friendsFightingRoom则说明是好友之间的匹配
- })
- }
- app.tunnelCloseCallback = () => {
- that.setData({ status: '连接已关闭' })
- //util.showSuccess('连接已断开')
- }
- app.tunnelReconnectCallback = () => {
- util.showSuccess('已重新连接')
- let userInfo = that.data.userInfo
- userInfo.tunnelId = getCurrentTunnelId()
- that.setData({
- status: '网络已重连,匹配中...',
- userInfo,
- })
- tunnel.emit('updateMatchInfo', {//发起匹配
- openId: that.data.openId,
- sortId: opt.sortId,
- friendsFightingRoom: opt.friendsFightingRoom//匹配者含friendsFightingRoom则说明是好友之间的匹配
- })
- }
- app.tunnelReconnectCallback = () => {
- util.showSuccess('已重新连接')
- let userInfo = that.data.userInfo
- userInfo.tunnelId = getCurrentTunnelId()
- that.setData({
- status: '网络重连成功,对手匹配中...',
- userInfo,
- })
- }
- app.tunnelErrorCallback = (error) => {
- that.setData({ status: '信道发生错误:' + error })
- util.showSuccess('连接错误')
- }
- tunnel.on('matchNotice', (res) => {//监听匹配成功
- console.log('res', res)
- let user_me, user_others
- if (res.player1.openId === that.data.openId){
- user_me = res.player1
- user_others=res.player2
- }else{
- user_me = res.player2
- user_others = res.player1
- }
- wx.setStorageSync('user_me', user_me)
- wx.setStorageSync('user_others', user_others)
- that.setData({ status: user_me.nickName + ' VS ' + user_others.nickName })
- setTimeout(goto_fighting_room, 2000)//延迟1s跳转到战队页面
- function goto_fighting_room() {
- wx.redirectTo({ //navigateTo不会会卸载该页面,只是将当前页面隐藏了,redirectTo会销毁当前页面
- url: `../fighting_room/fighting_room?roomName=${res.player1.roomName}`
- })
- }
- })
- }
- module.exports = { match }
|