SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序

来源:互联网 发布:听歌学英文软件 编辑:程序博客网 时间:2024/06/06 03:36
确保上一节服务器程序运行没有问题,否则请仔细看上一节

新建一个Unity3D项目(我的Unity3D版本是4.2.0)

1,在Unity3D内新建一个文件夹命名 Plugin

将下载的 

客户端:

WebSocket4Net  客户端必备

http://websocket4net.codeplex.com/

WebSocket4Net.dll   这个DLL复制到 Unity3D里面刚才新建的 Plugin文件夹内(注意Unity不得使用中文)

———————————

 

查看Unity下面的状态面板,确保没有红色错误提示,说明引入正确

 

2,新建一个C#文件,命名为SsocketDemo.cs

新建后 它自动 命名和 文件名一致(Unity3D里面 C#文件名和 类名一致,暂时不支持命名空间)

 

 

添加以下命名空间:

using System.ComponentModel;
using System.Text;
using System.Net.Sockets;

 

using WebSocket4Net;
using WebSocket4Net.Command;
using WebSocket4Net.Protocol;

 

具体代码如下:

 

public class SsokcetDemo : MonoBehaviour {// 服务器IP地址和端口号private string ServerAdress ;      // 玩家名字 private string PlayName = "LIN";//发送的消息        private string message ;       //接收到 服务器发回来的消息          private string ServerMessage ;void Start () {// 服务器IP地址和端口号    ServerAdress = "ws://127.0.0.1:2000/";message = "Clients Send Message" ;   ServerMessage = "Server Message" ;}void Update () {    if( websocket !=null  &&  websocket.State != WebSocketState.None   ){ Debug.Log( message ); Debug.Log( websocket.State );}}      public WebSocket websocket ;           void OnGUI()        {        //绘制2个 TxtBox文本输入框                PlayName = GUI.TextField(new Rect(10, 10, 100, 20), PlayName);                message = GUI.TextArea(new Rect(10, 40, 200, 200), message);                ServerMessage = GUI.TextArea(new Rect(10, 250, 400, 200), ServerMessage);                 //连接到服务器       if(GUI.Button(new Rect(250, 10, 150, 40), "Client连接"))                {                     ClientSend();                };      if( websocket != null )       {         //测试向服务器发送消息         if(GUI.Button(new Rect(250, 60, 150, 40), "SendMessageToServer"))                    {             if( message.Length <1 || PlayName.Length < 1 )              return;                          websocket.Send("UnityClient Send" + PlayName +"Say:" + message  );                    };                   //断开连接按钮               if(GUI.Button(new Rect(250, 120, 150, 40), "CloseSocket"))                      {                       websocket.Close();           websocket = null;                      };          }            }        public void ClientSend()          {       websocket = new WebSocket( ServerAdress);                websocket.Opened += new EventHandler(websocket_Opened);          //   websocket.Error += new EventHandler<ErrorEventArgs>(websocket_Error);               websocket.Closed += new EventHandler(websocket_Closed);                 websocket.MessageReceived += new EventHandler<MessageReceivedEventArgs>( websocket_MessageReceived  );                            websocket.Open();         }     private void websocket_Opened(object sender, EventArgs e)          {                    websocket.Send( PlayName +"Has Join The Game" );           }        private void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)          {                   ServerMessage += e.Message;           }         private void websocket_Closed(object sender, EventArgs e)          {                   websocket.Close();           }        }

  

将代码 拖放到 Main Camera上 

如图:

 

先启动 服务器程序 

 

如图:

 

 

说明服务器 启动成功!

 

在进入 Unity3D中

 

 

 

没有错误的话  会出现 下图

 

 

点击 Client连接  ,  服务器端 会如下出现消息

  

 

 

说明 连接正常    ,让我们 测试  客户端 发消息到 服务器 

在Unity3D里面第二个文本框(第一个表示玩家的名字 PlayerName ,第二个是 客户端 将要发送的消息,第三个是 服务器 相应 返回的消息 )

输入HellowSuperSocket   点击 SendMessageToServer

将会看到 如下图:

 

以上就是完整的程序例子,稍后将放出 客户端 和 服务器端的源码 

QQ:2360450496

SuperSocket官方QQ群:373076764

欢迎大家来一起研究开发这个Socket框架!

 

未完,待续......

 

 

0 0
原创粉丝点击