我刚刚用画布和JS创建了一个单人Atari游戏,并面临将其变成多人游戏的挑战。
所以现在我基本上是在尝试从一个客户端获取数据,并使用Node.js将其发送到另一个客户端。
我只想举一个简单的示例,因为我只能在互联网上找到复杂的示例,而我对Node.js的经验几乎为零。
您可能会猜到,我想在两个客户端之间交换元素坐标。
答案 0 :(得分:0)
例如,您可以使用数据库在一个服务器上存储数据(坐标),然后任何/允许的用户都可以使用/从数据库中获取坐标。
var express = require('express')
var MongoClient = require('mongodb').MongoClient
var router = express.Router()
var url = "mongodb://localhost:27017"
router.post('/setCordinates',function(reqs,resp){
MongoClient.connect(url,{ useNewUrlParser: true },function(err,database){
if(err){
console.log(err)
}else{
var dataBases = database.db("myApp")
// fetching user1 by some key **id** from data base
dataBases.collection('userCordinate').find({'id':reqs.body.id}).toArray(function(err,result){
if(err){
console.log(err)
}else if(result[0]){
// if user1 cordinates are on server then will update to new one
dataBases.collection('userCordinate').update({"id":reqs.body.id},{$set:{"cordinates":"X-Y"}})
}else{
dataBases.collection('userCordinates').insertOne(reqs.body)
}
})
}
})
})
var express = require('express')
var MongoClient = require('mongodb').MongoClient
var router = express.Router()
var url = "mongodb://localhost:27017"
router.post('/getCordinates',function(reqs,resp){
MongoClient.connect(url,{ useNewUrlParser: true },function(err,database){
if(err){
console.log(err)
}else{
var dataBases = database.db("myApp")
// fetching user1 by some key **id** from data base to send it to user2
dataBases.collection('userCordinate').find({'id':reqs.body.id}).toArray(function(err,result){
if(err){
console.log(err)
}else if(result[0]){
// user2 can get cordinates from database
resp.send(result[0].cordinates)
}else{
resp.send({"No cordinates"})
}
})
}
})
})
可能是我错了,但查询时间= 0毫秒左右。哪一个 好的。如果有误,请发表评论。