我正在 iOS 和 android 上构建纸牌游戏应用程序,其逻辑如下:
- 人们从 App Store/Google Play 下载应用
- 他们可以在同一 wifi 网络内与其他玩家离线玩游戏
- 一个客户端作为服务器,其他玩家作为客户端
- 该游戏是一款嵌入了 Node.js 和 SQLite 的应用
- 每个玩家的走法都会保存在服务器中
- 当有互联网接入时,作为服务器的iOS将数据发送到云端
我的做法是
游戏将是一个带有 Node.js 的 HTML5,玩家作为游戏持有者(服务器)将打开一个端口(如端口 80)
其他玩家将使用 HTTP get/set 向游戏持有者发送和接收 JSON 包
我的问题是
我可以在 iOS 上运行 Node.js 作为服务器并打开端口让其他玩家连接吗?这样我就可以将 JSON 用于玩家之间的所有通信。
如果没有,不同设备(iOS、android、Windows Phone)通信的最佳方式是什么?
任何建议和帮助将不胜感激。谢谢。 迈克尔
最佳答案
我的声誉不足以发表评论,但无论如何我都会建议使用什么。如果您在 Node.js 中创建服务器,那么此答案的其余部分将告诉您该怎么做。使用 CFNetwork 和 CoreFoundation。假设您以字符串格式发送数据,此代码应该有所帮助(代码将字符串发送到服务器)。
import CoreFoundation
import CFNetwork
var outputStream: NSOutputStream!
var writeStream: Unmanaged<CFWriteStreamRef>?
var addr: CFString = "127.0.0.1"
var port: UInt32 = 80
//the second nil in CFStreamCreatePairWithHost is a read stream. which means it reads data. we don't need it bc we are only sending data
CFStreamCreatePairWithSocketToHost(nil, addr, port, nil, &writeStream)
outputStream = writeStream!.takeRetainedValue()
outputStream.delegate = self
outputStream.open()
outputStream.write("fireGun", maxLength: 8 //(the char count of fireGun")
//close outputStream
outputStream.close()
关于javascript - 在 iOS 上运行 Node.js 作为服务器并让其他设备连接进来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32195832/