gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:07 25 4
gpt4 key购买 nike

我正在 iOS 和 android 上构建纸牌游戏应用程序,其逻辑如下:

  1. 人们从 App Store/Google Play 下载应用
  2. 他们可以在同一 wifi 网络内与其他玩家离线玩游戏
  3. 一个客户端作为服务器,其他玩家作为客户端
  4. 该游戏是一款嵌入了 Node.js 和 SQLite 的应用
  5. 每个玩家的走法都会保存在服务器中
  6. 当有互联网接入时,作为服务器的iOS将数据发送到云端

我的做法是

  1. 游戏将是一个带有 Node.js 的 HTML5,玩家作为游戏持有者(服务器)将打开一个端口(如端口 80)

  2. 其他玩家将使用 HTTP get/set 向游戏持有者发送和接收 JSON 包

我的问题是

  1. 我可以在 iOS 上运行 Node.js 作为服务器并打开端口让其他玩家连接吗?这样我就可以将 JSON 用于玩家之间的所有通信。

  2. 如果没有,不同设备(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com