在iOS上运行Node.js作为服务器,并让其他设备连接

我正在iOS和Android上构build一个具有以下逻辑的卡片游戏应用程序:

  1. 人们从App Store / Google Play下载应用程序
  2. 他们可以在同一个wifinetworking内与其他玩家脱机玩游戏
  3. 一个客户将充当服务器,而另一个客户将充当客户
  4. 游戏是一个embedded了SQLite的Node.js应用程序
  5. 每个玩家的移动将被保存在服务器中
  6. 当互联网接入时,iOS作为服务器将数据发送到云端

我的方法是

  1. 游戏将是一个HTML5与Node.js,作为一个游戏持有人(服务器)将打开一个端口(如端口80)

  2. 其他玩家将使用HTTP获取/设置来发送和接收来自游戏持有者的JSON包

我的问题是

  1. 是否有可能在iOS上运行Node.js,作为服务器,并打开端口让其他玩家连接? 所以我可以使用JSON来进行玩家之间的所有通信。

  2. 如果不是,不同设备(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()