首页 > 代码库 > SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序
SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序
确保上一节服务器程序运行没有问题,否则请仔细看上一节
新建一个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;
具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 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框架!
未完,待续......