开发者社区> 最美的回忆> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Unity3d 下websocket的使用

简介:
+关注继续查看

今天介绍一下如何在Unity3D下使用WebSocket。
首先介绍一下什么是websocket,以及与socket,和http的区别与联系,然后介绍一下websocket的一些开源的项目。

WebSocket是什么
WebSocket协议是为了实现网络客户端和服务器端全双工通信而引入的一种基于消息帧和TCP的通信机制,这个协议本身的目标是为了在http服务器上引入双向通信的机制,从而克服http单向通信的缺陷(http设计的初衷就不是为了双向通信),其可以在复用http的端口,支持http的代理,认证等,虽然如此,websocket可以独立于http存在。 详细的内容可以参考RFC6455(https://datatracker.ietf.org/doc/rfc6455/)里面有详细的介绍。

那么WebSocket与http,socket有什么区别和联系呢。

WebSocket和http
其实从历史上来讲,websocket是为了克服http无法双向通信而引入的,在通常的使用中,可以复用http的端口与功能,除此外,他们没有其他的联系,而是完全是独立的协议,通常情况下,http是单向的web 服务,而websocket是全双工的,服务器和客户端可以实时的传输信息,在引用时他们可以在http服务器上同时部署,特别是在NodeJs中。
WebSocket与Socket
那么websocket和socket是什么关系呢? 其实可以理解为websocket是在socket的基础上实现的,其基于消息帧和TCP协议,而socket更通用,在编程中,可以选在tcp,udp,也需要自己控制数据流格式,每次的数据的长度都需要自己控制与读取。
Unity3d下如何使用WebSocket
现在越来越多的Unity3d游戏需要使用websocket或者后台的服务,在实际中,NodeJs,SocketIO越来越多的作为后台的服务加以应用,那么在unity3d的前端上可以使用的开源的websocket有两种:

UnitySocketIO
可以参考https://github.com/kaistseo/UnitySocketIO-WebSocketSharp ,其完全是C# dll的方式Unity3d中使用,测试了在windows和Linux下使用完全没有问题。分析一下优缺点:
优点: 直接使用dll,无unity3d的依赖,代码比较好测试,支持多种消息类型,如文本,Json等。
缺点:需要依赖第三方的库,如SuperSocket,SimpleJson等,在iOS下需要单独维护。

Socket.IO for unity
unity3d 的Asset store上有一个免费的开源项目 Socket.IO for unity (https://www.assetstore.unity3d.com/en/#!/content/21721)可以使用。测试了windows和linux版本,没有问题。 其他的andriod和ios应该也没有问题,根据代码和文档。
优点: 代码直接嵌入到Unity3d中,有所有的源代码,支持Json的消息传输。
缺点: 写测试用例相对繁琐,Json消息简单,不支持对象的Json解析,不过这块应该可以重写。http://blog.csdn.net/leoleocs/article/details/48824921
本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/p/6371878.html如需转载请自行联系原作者

jiahuafu

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Netty进阶 -- WebSocket长连接开发
Netty进阶 -- WebSocket长连接开发
35 0
netty系列之:使用netty搭建websocket客户端
netty系列之:使用netty搭建websocket客户端
216 0
Netty进阶 -- WebSocket长连接开发
Netty进阶 -- WebSocket长连接开发
91 0
websocketd开启websocket服务
websocketd开启websocket服务
63 0
websocket
前端页面的实时刷新一般两种思路,即拉和推的思路: 拉:前端每隔一段时间到后台请求数据; 推:后端需要推送数据时,向前端推送数据。 没有特殊需求的话,一般使用推的方式。websocket是基于TCP的协议,能够实现客户端与服务端全双工通信。
800 0
【WebSocket No.1】实现服务端webSocket连接通讯
前言 现阶段socket通信使用TCP、UDP协议,其中TCP协议相对来说比较安全稳定!本文也是来讲解TCP为主(恕在下学艺不精)。       下面是个人理解的tcp/ip进行通讯之间的三次握手! 1.客户端先发送报文到服务端 2.服务端接受到报文之后进行回复 3.客户端收到回复之后再次发送确认信息。
1223 0
2286
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载