我在过去的10天里一直在做这件事。我的任务是:从Unity3D连接到使用名称空间的SocketIO服务器。问题是没有任何可用的c# SocketIO库(不改变服务器上的任何东西)。所以我被迫使用常规的WebSockets。我找到了几个库(目前使用WebSocketSharp)。我已经设法连接到普通的SocketIO服务器,但我需要找到一种方法来连接到SocketIO,即使用名称空间。
首先,我向SocketIO服务器发送一个http GET请求以获得握手。这样的:
…new WebRequest("http://somewebsite.com:8080/socket.io/1/?t=" + time, "GET");
我从函数中得到了与JavaScript的getTime()函数相同的"时间"变量。在此之后,我试图像这样连接到WebSocket:
…new WebSocket("ws://somewebsite.com:8080/socket.io/1/WebSocket/" + key[0]);
key[0]变量是web请求的响应。
当SocketIO服务器端的体系结构是常规的时,这一切都有效,但是如何使用名称空间实现SocketIO服务器的所有这一切?
我检查了Chrome的网络流量,只有在框架选项卡下提到命名空间的地方(当web套接字试图连接时的第二次请求)。
谢谢。
编辑:服务器上的SocketIO版本为0.9.x
我通过操作url为c# SocketIOClient添加命名空间。
在url后面添加命名空间
http://somewebsite.com: 8080/socket . io/1/[名称]? t =