选择技术类型微信小程序使用Taro(功能不多就不是使用Redux了),后台用php写,websocket使用选workman来做。 这里使用Taro做画布是有问题的,它不支持h5。选型的问题taro 不支持画布的H5下面来详细讲讲小程序登陆,我的做法是写一个登陆的组件,再在layout中加入login的组件return ( <View> {this.props.children} <Login /> </View> )这里微信获取用户信息是异步的,在到后台获取openid也是异步的,但是我更希望整个过程是同步运行的这样写的代码也好看点但是不支持同步处理,这里使用regeneratorRuntime await Promise 来处理websocket 断线重连问题小程序在后台运行很快websocket会断开连接,使用onshow(componentDidShow)方法,此时后台的websocket 其实可能也已经失去结局办法websocket创建将获得连接id,将id对应到uid放在redis中,发送消息就已uid去找连接id。游戏同步问题,这里用状态同步的方法。状态修改便通过websocket来同步。typescript整个画布加上对局后加入websocket以后代码将变得更为繁琐,这个玩意可以确保获取正确类型判断提示。export class UserType { type: string = “”; nickname: string = “”; uid: number = 0; img: string = ‘’;}export class Game { room: string; uid: number; time: number =100; start: boolean = false; name: string =""; prompt: Array<string> = []; userList: Array<UserType> = [];}public state = { socket: Object, user: new UserType, game: new Game, log: Array<Array<XyType>>() }最后taro 使用的还是挺爽的!!