2014-09-24 2 views
-2

Я разрабатываю андроидную игру android MMO в бесплатной версии Unity. У меня установлен node.js на моем компьютере. должен ли я использовать следующий код на стороне сервера и клиента, потому что, когда я пытался его протестировать, я мог запустить скрипт на стороне сервера, но не мог понять, подключен ли клиент или нет. Также, когда я пытался построить apk, единство дает ошибку, говоря «использование System.Net.Sockets требует про версии единства». Пожалуйста помоги!!Создание websocket для MMO-андроидов с использованием Unity3d и Node.js

сторона сервер (на 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...");` 

сторона клиента (в единстве с # сценарием)

`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(); 
    } 
}` 

ответ

0

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

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

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

  1. Good ol' Sockets
  2. Best HTTP Basic
  3. Best HTTP Pro Edition

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

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

Как:

  1. Photon Unity Networking
  2. Bolt Networking Middleware
Смежные вопросы