2014-09-24 52 views
-2

我正在開發免費版本的Unity中的android MMO android遊戲。我的電腦上安裝了node.js。我應該使用以下服務器 - 客戶端代碼,因爲當我試圖測試它時,我可以運行服務器端腳本,但無法確定客戶端是否連接。另外,當我試圖構建apk時,Unity給出了一個錯誤,說「使用System.Net.Sockets需要專業版的統一。」請幫忙!!使用Unity3d和Node.js爲android MMO創建websocket

服務器端(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...");` 

客戶端(團結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(); 
    } 
}` 

回答

0

首先,如果你想使用本地套接字,你需要Unity3D Pro。

但還有另一種方法來處理這個問題。

您可以使用其中之一。你可以在Unity資源商店找到它們(我知道這些可能不僅僅是這些資產)。 (他們不是免費的,但比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