博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3d 下websocket的使用
阅读量:5749 次
发布时间:2019-06-18

本文共 1266 字,大约阅读时间需要 4 分钟。

今天介绍一下如何在Unity3D下使用WebSocket。

首先介绍一下什么是websocket,以及与socket,和http的区别与联系,然后介绍一下websocket的一些开源的项目。

WebSocket是什么

WebSocket协议是为了实现网络客户端和服务器端全双工通信而引入的一种基于消息帧和TCP的通信机制,这个协议本身的目标是为了在http服务器上引入双向通信的机制,从而克服http单向通信的缺陷(http设计的初衷就不是为了双向通信),其可以在复用http的端口,支持http的代理,认证等,虽然如此,websocket可以独立于http存在。 详细的内容可以参考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

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

Socket.IO for unity

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

jiahuafu

你可能感兴趣的文章
前端布局学习
查看>>
问题解决-Failed to resolve: com.android.support.constraint:constraint-layout:1.0.0-alpha7
查看>>
openURL的使用
查看>>
与MS Project相关的两个项目
查看>>
[转载]ASP.NET MVC Music Store教程(1):概述和新项目
查看>>
css实现单行,多行文本溢出显示省略号……
查看>>
解决数据丢失问题
查看>>
RAID在SQL Server中的应用(RAID几种级别)
查看>>
WCF Http Get 方法返回 400 Bad Request
查看>>
GC DevKit 快速入门
查看>>
定位到oob
查看>>
C# Language Introduction
查看>>
WP8开发环境配置 以及 如何知道自己的CPU支持SLAT
查看>>
C# Winform 按ESC关闭窗体
查看>>
C#中的泛型
查看>>
C#程序中注释过多的8条理由
查看>>
c++primer记录(二) 模板
查看>>
ubuntu下面板上无网络连接的图标
查看>>
进程管理
查看>>
EasyMock入门
查看>>