You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
varapp=require('http').createServer(handler)vario=require('socket.io')(app);varfs=require('fs');app.listen(8080,function(){console.log('Listening at localhost:8080')});varroom={};// 客户端连接后处理事件io.on('connection',function(client){
....});
有2个月没怎么写文章了,这次项目做了一个HTML5的在线实时游戏,游戏是基于
Socket.IO架构写的,网上的资料也很多,比较零散,啰嗦。在这里总结下整个流程,开拓思路。(PS: 主要是整个流程的思路,不讲框架的基础用法)
创建node服务端
创建游戏房间
生成房间链接,或者二维码
可以使用qrcodejs来生成二维码。具体的步骤就是生成一个带有code的Url。玩家根据Code来判断是否有房间。有则加入,没有则创建。
生成Url
玩家加入房间
通过扫描二维码,得到location.search里roomId,然后发送到后端,加入房间
服务端接收join事件,客户端加入房间后,同时通知房间里面的其他玩家。
通过获取客户端request ,获取玩家请求的room id
每次玩家发送一次请求的时候,无需每次都带上房间的id。
创建玩家数据
每个玩家都会生成一个固定的user Id, 保存在server 和 客户端的localStorage 里面
每一个玩家在连接后端的时候都可以创建一份数据,用来恢复掉线后的数据。
具体大概的流程都在上面了,socket的具体使用可以参考官网的demo, 这边只是一个大概的流程思路。具体的逻辑代码也没什么好讲的,比如玩家做了动作
emit (客户端) -> on (服务端) - emit -> on(客户端),很简单的。
The text was updated successfully, but these errors were encountered: