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
时间: 2024-08-25 10:27:16

Unity3d 下websocket的使用的相关文章

unity3d 下操作excel 与打印

因项目需要,需在unity下实现写入excel.打印功能.因之前在winform里操作过excel,故顺心应手=== 说明:本次只实现了简单操作步骤,在实际项目需要中,在此基础上扩展即可. 需求: 1.将各种统计数据插入到excel表格中.文字.数字.图片.时间---- 2.打印excel表格 ==我们首先来做第一步吧. 操作excel,我一直使用的是NPOI插件,自我感觉该插件非常不错,从java移植到.NET下的.抱着一颗激动的心开始流程-- 1.将NPOI.DLL文件拷贝到unity\As

unity3d 下操作excel

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 因项目需要,需在unity下实现写入excel.打印功能.因之前在winform里操作过excel,故顺心应手=== 说明:本次只实现了简单操作步骤,在实际项目需要中,在此基础上扩展即可. 需求: 1.将各种统计数据插入到excel表格中.文字.数字.图片.时间--

spring boot下WebSocket消息推送

WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通讯的协议.WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范.WebSocket API也被W3C定为标准. WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 STOMP协议 STOMP是面向文本的消息传

Unity3D下用C#通过WinSCP命令行方式给Linux服务器SCP传文件

遇到一个需求是在Unity3D做编辑器工具时需要把生成的AssetBundle包上传到资源服务器,资源服务器用的Linux. 实现分为三部分:1,C#上传工具类:2,WinSCP脚本:3,传参调用使用上传功能. 1,C#上传工具类 using UnityEngine; using System.Collections; using System.IO; using System; using System.Diagnostics; public class UploadHelper {     

Obj格式解析以及在Unity3D下导入测试

目前基本实现了导入 四边面模型: 全三角面模型(测试单一材质,所以重新分了下UV): 这里介绍下obj格式: obj格式是waveFront推出的一种3D模型格式,可以存放静态模型以及一些诸如曲线的附加信息. 其格式以文本形式存放,所以解析起来比较方便,它的大体格式如下: # WaveFront *.obj file (generated by CINEMA 4D) mtllib ./test.mtl v -100.00000000000000 -100.00000000000000 -100.

使用Html5下WebSocket搭建简易聊天室

一.Html5WebSocket介绍 WebSocket protocol 是HTML5一种新的协议(protocol).它是实现了浏览器与服务器全双工通信(full-duplex). 现在,很多网站为了实现即时通讯(real-time),所用的技术都是轮询(polling).轮询是在特定的的时间间隔(time interval)(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器.这种传统的HTTP request d的模式带来很明显的缺点 –

手游热更新方案--Unity3D下的CsToLua技术

WeTest 导读 CsToLua工具将客户端 C#源码自动转换为Lua,实现热更新,本文以麻将项目为例介绍客户端技术细节. 麻将项目架构 其中ChinaMahjong-CSLua为C#工程,实现麻将项目的主要业务流程.翻译工程的输入是C#项目生成的dll文件.其中Cecil负责分析类型 类成员关系 ,比如类字段函数结构,引用关系.类之间的继承关系等,ILSpy负责反编译函数体里的语句,比如条件语句,函数调用,算数运算等.下面逐个介绍具体的实现. Mono.Cecil Mono.Cecil:一个

WebSocket简单介绍

Java后端WebSocket的Tomcat实现 一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据. 我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后返回response结果,而服务端很难主动向客户端发送数据:

webSocket学习

### 一.首先查了一下socket和websocket的区别 要了解,这两者的区别,最好的方法就是了解二者本身,那么区别也就不言而喻了. 原文出处: TheAlchemist 当我们探讨两件事物的区别和联系时,我们想探讨些什么? 前段时间写了两篇介绍 HTTP 和 WebSocket 的文章,回复中有人说希望了解下WebSocket和Socket的区别.这个问题之前也有想过,自己对此是有大概的答案,可是并不太确定,于是去搜集了些资料(其实就是各种Google),看了很多以前的文档,觉得有些故事