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

相关文章
|
6月前
使用uniapp实现websocket聊天功能
使用uniapp实现websocket聊天功能
|
11月前
|
小程序 Shell Linux
workman(二)thinkphp5.0安装websocket插件workerman
首先说明一下我使用的PHP框架是thinkphp5.0。 当然,workerman这个插件不是只有thinkphp5.0可以使用。 具体的安装方法,thinkphp5.0的官方手册中是给出了明确的说明 请移步《thinkphp5.0官方手册》
258 0
|
测试技术 C# 图形学
Unity3d 下websocket的使用
今天介绍一下如何在Unity3D下使用WebSocket。 首先介绍一下什么是websocket,以及与socket,和http的区别与联系,然后介绍一下websocket的一些开源的项目。 WebSocket是什么 WebSocket协议是为了实现网络客户端和服务器端全双工通信而引入的一种基于消息帧和TCP的通信机制,这个协议本身的目标是为了在http服务器上引入双向通信的机制,从而克服http单向通信的缺陷(http设计的初衷就不是为了双向通信),其可以在复用http的端口,支持http的代理,认证等,虽然如此,websocket可以独立于http存在。
|
4月前
|
网络协议 UED 开发者
|
移动开发 JavaScript 前端开发
WebSocket 详解教程 上
WebSocket 详解教程 上
516 0
WebSocket 详解教程    上
|
存储 JavaScript 网络协议
WebSocket接口初体验
这两天在调试一个WebSocket的接口,折腾了一天的时间终于弄好了。现在对WebSocket的相关知识点做一个记录。主要从如下几个方面进行介绍。
286 0
WebSocket接口初体验
|
XML 移动开发 Java
WebSocket 详解教程 下
WebSocket 详解教程 下
313 0
|
缓存 JavaScript 网络协议
|
缓存 移动开发 JavaScript
WebSocket+Netty构建web聊天程序(一)
WebSocket+Netty构建web聊天程序(一)
319 0
|
Web App开发 存储 移动开发
WebSocket入门
HTML5 拥有众多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、WebSocket 等等。其中,WebSocket 的出现使得浏览器提供对 Socket 的支持成为可能,从而在浏览器和服务器之间提供了一个基于 TCP 连接的双向通道。使用 WebSocket,web开发人员可以很方便地构建实时 web 应用。
376 0
WebSocket入门