使用Unity3d和Node.js为android MMO创建一个websocket



我正在Unity的免费版本中开发一款安卓MMO安卓游戏。我的电脑上安装了node.js。我应该使用以下服务器客户端代码吗?因为当我尝试测试它时,我可以运行服务器端脚本,但无法确定客户端是否正在连接。此外,当我试图构建apk时,unity给出了一个错误,说"使用System.Net.Sockets需要专业版本的unity。"请帮助!!

服务器端(在node.js上)

`var net = require('net');
var tcp_server = net.createServer(function(socket)
{
    socket.write('hellon');
    socket.end('worldn');
});
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();
    }
}`

最简单的方法可能是使用socket.io

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

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

但还有其他方法可以解决这个问题。

你可以使用其中一个。你可以在Unity资产商店找到它们。(我知道的可能比这些资产还多)。(它们不是免费的,但比Unity pro便宜)。

  1. 好的插座
  2. 最佳HTTP基础
  3. 最佳HTTP Pro版

在@ploutch提到Socket.IO之后,它真的很好。

但别忘了Unity3D有自己的网络。你可以创建服务器,也可以使用它加入客户端。还有一些非常好的提供商,为你提供了额外的选择。

类似:

  1. Photon Unity网络
  2. Bolt网络中间件

相关内容

  • 没有找到相关文章

最新更新