Создание веб-сокета для Android MMO с использованием Unity3d и Node.js

Я занимаюсь разработкой Android-игры MMO для Android в бесплатной версии Unity. У меня установлен node.js на моем компьютере. должен ли я использовать следующий код на стороне сервера-клиента, потому что, когда я пытался его протестировать, я мог запустить скрипт на стороне сервера, но не мог выяснить, подключается клиент или нет. Также, когда я пытался собрать apk, unity выдает ошибку, говоря: "использование System.Net.Sockets требует профессиональной версии unity". Пожалуйста помоги!!

сторона сервера (на node.js)

`var net = require('net');
var tcp_server = net.createServer(function(socket)
{

    socket.write('hello\n');
    socket.end('world\n');
});
tcp_server.listen(8000);
console.log("Server Running...");`

клиентская часть (в скрипте Unity C#)

`using UnityEngine;
using System.Collections;
using System.Net.Sockets;
using System.Text;
public class tcpClient : MonoBehaviour 
{
    static void Main(string[] args)
    {
        Debug.Log("start");
        TcpClient tcpClient = new TcpClient();
        tcpClient.Connect("127.0.0.1", 8000);
        Debug.Log ("Connected");
        NetworkStream clientStream = tcpClient.GetStream();
        byte[] message = new byte[4096];
        int bytesRead;
        bytesRead = 0;

        try
        {
            // Read up to 4096 bytes
            bytesRead = clientStream.Read(message, 0, 4096);
        }
        catch
        {
            /*a socket error has occured*/
        }
        //We have read the message.
        ASCIIEncoding encoder = new ASCIIEncoding();
        Debug.Log(encoder.GetString(message, 0, bytesRead));
        //Console.WriteLine(encoder.GetString(message, 0, bytesRead));
        tcpClient.Close();
    }
}`

2 ответа

Решение

Самый простой способ, вероятно, будет использовать socket.io

http://socket.io/get-started/

Прежде всего, если вы хотите использовать собственный сокет, вам нужен Unity3D Pro.

Но есть и другие способы решения этой проблемы.

Вы можете использовать один из них. Вы можете найти их в Unity Asset Store (я знаю, что, может быть, больше, чем эти активы). (Они не бесплатны, но дешевле, чем Unity Pro).

  1. Добрые старые розетки
  2. Лучший HTTP Basic
  3. Лучший HTTP Pro Edition

После этого @ploutch упомяните Socket.IO. Это действительно хорошо.

Но не забывайте, что Unity3D имеет свою собственную сеть. Вы можете создать сервер и присоединиться к клиенту, используя его. Также некоторые провайдеры, которые действительно хороши и дают дополнительные возможности для вас.

Подобно:

  1. Фотон Unity Networking
  2. Сетевое промежуточное ПО Bolt
Другие вопросы по тегам