经历苹果多次打回,我们的一个前端COCOA,后端全NODE.JS的游戏终于通了~~求下载,求5星【Nodejs游戏分享】

经历苹果多次打回,我们的一个前端COCOA,后端全NODE.JS的游戏终于通了~~求下载,求5星【Nodejs游戏分享】

首先,这不是广告。 我们本来已经认为年前可能无法过审了,但就在这样一个早晨,苹果发来了过审的信息。激动。

☟⬇⇣↧⤋⇂⇓⟱ 下载地址最在下面 ☟⬇⥥⟱⇟⇓⇩↓

截图

截图

截图

二维码下载: 二维码下载

下载地址:http://itun.es/i6Jk9Wb


8 回复

经历苹果多次打回,我们的一个前端COCOA,后端全NODE.JS的游戏终于通了~~求下载,求5星【Nodejs游戏分享】

首先,这不是广告。

我们本来已经认为年前可能无法过审了,但就在这样一个早晨,苹果发来了过审的信息。激动。

游戏概述

这个游戏是一个结合了前端COCOA和后端全Node.js技术的游戏。尽管在开发过程中遇到了许多挑战,特别是苹果审核团队的多次打回,但我们最终还是成功通过了审核。

技术栈

  • 前端: COCOA (Objective-C)
  • 后端: Node.js
  • 数据库: MongoDB

项目结构

my-game/
├── frontend/
│   ├── AppDelegate.m
│   ├── ViewController.m
│   └── ...
├── backend/
│   ├── app.js
│   ├── routes/
│   │   ├── gameRoutes.js
│   │   └── ...
│   ├── models/
│   │   ├── GameModel.js
│   │   └── ...
│   └── ...
└── README.md

后端示例代码

app.js

const express = require('express');
const mongoose = require('mongoose');

const app = express();
const port = process.env.PORT || 3000;

// 连接MongoDB
mongoose.connect('mongodb://localhost:27017/gameDB', { useNewUrlParser: true, useUnifiedTopology: true });

// 定义路由
require('./routes/gameRoutes')(app);

app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

gameRoutes.js

const express = require('express');
const router = express.Router();
const Game = require('../models/GameModel');

router.get('/games', async (req, res) => {
    try {
        const games = await Game.find({});
        res.json(games);
    } catch (err) {
        res.status(500).json({ message: err.message });
    }
});

module.exports = router;

GameModel.js

const mongoose = require('mongoose');

const GameSchema = new mongoose.Schema({
    title: { type: String, required: true },
    description: { type: String, required: true },
    score: { type: Number, default: 0 }
});

module.exports = mongoose.model('Game', GameSchema);

下载地址

☟⬇⇣↧⤋⇂⇓⟱ 下载地址最在下面 ☟⬇⥥_RENDERER_DOWNWARDS_ARROW:

截图 截图 截图

二维码下载: 二维码下载

下载地址:http://itun.es/i6Jk9Wb

希望你们喜欢这款游戏!如果觉得不错,请给个五星评价哦!


画面很漂亮。我们的 app 一次审查通过。这个 poker app 经历苹果多次打回,能说说什么原因吗?

界面看起来很华丽啊 请问后台用了什么模块?

mysql memcached underscore express 就这么多,其他都自己写了

不错不错

看到楼主的 App, CNode 好想有美工…

pomelo 欢迎游戏开发

很高兴看到你们的游戏通过了苹果的审核!既然你是希望分享一些关于Node.js的部分,我们可以简单介绍一下后端使用Node.js构建游戏服务的基本概念和代码示例。

Node.js非常适合处理高并发场景下的网络请求,尤其是在实时应用(如多人在线游戏)中表现出色。以下是几个关键点:

1. 创建HTTP服务器

Node.js提供了http模块,可以用来创建HTTP服务器,这是游戏后端服务的基础。

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

2. 处理WebSocket连接

对于实时游戏,WebSocket是一种更有效的通信方式。ws库是Node.js中常用的一个WebSocket库。

npm install ws

然后创建WebSocket服务器:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
  });

  ws.send('something');
});

3. 用户认证与数据管理

可以使用express框架来处理RESTful API,并配合mongoosesequelize等ORM库进行数据库操作。

npm install express mongoose

示例代码:

const express = require('express');
const mongoose = require('mongoose');

const app = express();
mongoose.connect('mongodb://localhost/game', { useNewUrlParser: true, useUnifiedTopology: true });

app.use(express.json());

// 定义用户模型
const UserSchema = new mongoose.Schema({
  username: String,
  password: String
});

const User = mongoose.model('User', UserSchema);

app.post('/register', (req, res) => {
  const user = new User(req.body);
  user.save()
    .then(() => res.json('User registered!'))
    .catch(err => res.status(400).json('Error: ' + err));
});

app.listen(3000, () => console.log('Server started on port 3000'));

这些示例可以帮助你快速搭建一个基本的Node.js后端服务。如果需要更详细的文档或代码,请随时询问!

回到顶部