在iOS上运行Node.js作为服务器,并让其他设备连接
我正在iOS和Android上构build一个具有以下逻辑的卡片游戏应用程序:
- 人们从App Store / Google Play下载应用程序
- 他们可以在同一个wifinetworking内与其他玩家脱机玩游戏
- 一个客户将充当服务器,而另一个客户将充当客户
- 游戏是一个embedded了SQLite的Node.js应用程序
- 每个玩家的移动将被保存在服务器中
- 当互联网接入时,iOS作为服务器将数据发送到云端
我的方法是
-
游戏将是一个HTML5与Node.js,作为一个游戏持有人(服务器)将打开一个端口(如端口80)
-
其他玩家将使用HTTP获取/设置来发送和接收来自游戏持有者的JSON包
我的问题是
-
是否有可能在iOS上运行Node.js,作为服务器,并打开端口让其他玩家连接? 所以我可以使用JSON来进行玩家之间的所有通信。
-
如果不是,不同设备(iOS,Android,Windows Phone)通信的最佳方式是什么?
任何build议和帮助将不胜感激。 谢谢。 迈克尔
我的名声是不足以评论,但我会build议使用什么。 如果你在Node.js中创build一个服务器,那么这个答案的其余部分将告诉你该怎么做。 使用CFNetwork和CoreFoundation。 假设你以string格式发送数据,这段代码应该有帮助(代码发送一个string到服务器)。
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()