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地址和端口号 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框架!
未完,待续......
SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序,古老的榕树,5-wow.com
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。