纳金网

标题: SmartFoxServer 连接服务端 [打印本页]

作者: 王者再临    时间: 2014-12-31 22:07
标题: SmartFoxServer 连接服务端
  1. using UnityEngine;
  2. using System.Collections;
  3. using Sfs2X;
  4. using Sfs2X.Core;
  5. using Sfs2X.Entities.Data;
  6. using Sfs2X.Requests;
  7. using Sfs2X.Entities;

  8. public class SFS2 : MonoBehaviour {

  9.     private bool isLogionIn;
  10.     private bool isconect;
  11.     private bool isZone;

  12.     #region 初始化网络成员变量 定义
  13.     public string ServerIP = "127.0.0.1";
  14.     public int ServerPort = 9933;
  15.     public string UserName = "12454";
  16.     public string Password = "454545";
  17.     private string ZoneName = "exmple";


  18.     SmartFox sfs;
  19.     #endregion

  20.     // Use this for initialization
  21.     void Start()
  22.     {
  23.         sfs = new SmartFox();
  24.         sfs.ThreadSafeMode = true;

  25.         sfs.AddEventListener(SFSEvent.CONNECTION, onConnect);

  26.         sfs.AddEventListener(SFSEvent.LOGIN, onLoginSuccess);
  27.         sfs.AddEventListener(SFSEvent.LOGIN_ERROR, onLoginError);

  28.         sfs.AddEventListener(SFSEvent.ROOM_JOIN, OnJoinRoom);
  29.         sfs.AddEventListener(SFSEvent.ROOM_JOIN_ERROR, OnJoinRoomError);
  30.         sfs.AddEventListener(SFSEvent.ROOM_ADD, OnRoomAdd);//添加房间
  31.         sfs.AddEventListener(SFSEvent.ROOM_REMOVE, OnRoomMove);

  32.         sfs.AddEventListener(SFSEvent.USER_ENTER_ROOM, OnUserEntryRoom);

  33.         sfs.AddEventListener(SFSEvent.USER_EXIT_ROOM, OnUserExitRoom);
  34.         //sfs.AddEventListener(SFSEvent.PUBLIC_MESSAGE, OnPublicMessage);
  35.         sfs.AddEventListener(SFSEvent.EXTENSION_RESPONSE, onExtensionResponse)

  36.         sfs.Connect(ServerIP, ServerPort);

  37.         SFSObject sfsobj = new SFSObject();
  38.         string shebei = Sfs2X.Util.PasswordUtil.MD5Password(SystemInfo.deviceUniqueIdentifier)
  39.     }

  40.     void onLoginSuccess(BaseEvent e)
  41.     {
  42.         Debug.Log("login success!" + e.Params["user"]);
  43.         isLogionIn = true;
  44.         isZone = true;

  45.         ISFSObject obj = new SFSObject();
  46.         obj.PutInt("NumA", 2);
  47.         obj.PutInt("NumB", 5);
  48.         sfs.Send(new ExtensionRequest("SumNumbers", obj));

  49.     }

  50.     void onLoginError(BaseEvent e)
  51.     {
  52.         Debug.Log("login success");
  53.     }

  54.     void OnLoginOut(BaseEvent e)
  55.     {
  56.         Debug.Log("exit success!");
  57.         isLogionIn = false;
  58.         isZone = false;
  59.     }

  60.     void onExtensionResponse(BaseEvent e)
  61.     {
  62.         string cmd = (string)e.Params["cmd"];
  63.         ISFSObject objIn = (SFSObject)e.Params["params"];

  64.         if (cmd == "uir")
  65.         {
  66.             if (objIn.ContainsKey("rs"))
  67.             {
  68.                 Debug.Log(objIn.GetByte("rs"));
  69.                 Debug.Log("userid: " + objIn.GetInt("ui"));
  70.                 Debug.Log("userName: " + objIn.GetUtfString("un"));
  71.                 Debug.Log("gold: " + objIn.GetLong("gd"));
  72.             }
  73.         }
  74.         if (cmd == "bdr")
  75.         {
  76.             if (objIn.ContainsKey("rs"))
  77.             {
  78.                 Debug.Log(objIn.GetByte("rs"));
  79.                 Debug.Log("BODYlist: " + objIn.GetSFSArray("bl"));
  80.             }
  81.         }
  82.     }

  83.     void onConnect(BaseEvent e)
  84.     {
  85.         if ((bool)e.Params["success"])
  86.         {
  87.             Debug.Log("Successfly Connect!");
  88.             isconect = true;
  89.             //sfs.Send(new LoginRequest(UserName, "", ZoneName));
  90.         }
  91.         else
  92.         {
  93.             Debug.Log("connet fill!");
  94.         }
  95.     }

  96.     void OnConntctionError(BaseEvent e)
  97.     {
  98.         isconect = false;
  99.         Debug.Log("程序与服务器断开!原因是:"+(string)e.Params["reason"]);
  100.     }
  101.     // Update is called once per frame

  102.     void Update()
  103.     {
  104.         sfs.ProcessEvents();
  105.     }

  106.     void OnJoinRoom(BaseEvent e)
  107.     {
  108.         Debug.Log("insert room" );
  109.        // sfs.Send(new PublicMessageRequest("hello world!"))
  110.     }

  111.     void OnJoinRoomError(BaseEvent evt)
  112.     {
  113.         Debug.Log("OnJoinRoomError");
  114.     }

  115.     void OnRoomMove(BaseEvent evt)
  116.     {
  117.         Debug.Log("OnRoomMove");
  118.     }   
  119. void OnRoomAdd(BaseEvent evt)
  120.     {
  121.         Debug.Log("房间添加成功");
  122.     }

  123.     void OnUserEntryRoom(BaseEvent evt)
  124.     {
  125.         Debug.Log("OnUserEntryRoom");

  126.     }   
  127. void OnUserExitRoom(BaseEvent evt)
  128.     {
  129.         Debug.Log("OnUserExitRoom");        
  130.     }
  131.     void OnPublicMessage(BaseEvent e)
  132.     {
  133.         Room room=(Room)e.Params["room"];
  134.         User sender=(User)e.Params["sender"];
  135.         Debug.Log("["+room.Name+"]"+sender.Name+":"+e.Params["message"]);
  136.     }
  137.     void OnGUI()
  138.     {
  139.         SFSObject sfsobj = new SFSObject();
  140.         if (GUI.Button(new Rect(100, 100, 100, 100), "connet server"))
  141.         {
  142.             sfsobj.PutUtfString("mi", "111111");
  143.             UserName = UserName + Random.RandomRange(100, 999).ToString();
  144.             byte[] testByteArray = System.Text.Encoding.UTF8.GetBytes(UserName);
  145.             UserName = System.Text.Encoding.UTF8.GetString(testByteArray);

  146.             byte[] testByteArray1 = System.Text.Encoding.UTF8.GetBytes(Password);
  147.             Password = System.Text.Encoding.UTF8.GetString(testByteArray);

  148.             sfs.Send(new LoginRequest(UserName, Password, ZoneName, sfsobj))

  149.         }        if (isconect && isLogionIn)
  150.         {
  151.             sfs.Disconnect()
  152.         }
  153.         else
  154.         {
  155.             sfs.Connect(ServerIP, ServerPort)
  156.         }        if (isLogionIn)
  157.         {         
  158.             sfsobj.PutByte("rc",1);
  159.             sfs.Send(new ExtensionRequest("uir",sfsobj));
  160.         }


  161.     }
  162. }
复制代码





欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5