这是一个简单的示例。服务器是使用node.js和socket.io开发的,而客户端是使用unity3d和BestHTTP开发的。
当我在UnityEditor中播放客户端时,一切正常,但是UnityEditor停止后,它仍通过socket.io与服务器保持连接。
我认为仍然有一个线程在后台运行。这是UnityEditor的问题吗?以及如何使其正常工作?
服务器代码:
io.on('connection', function(socket) {
console.log('User[' + socket.id + '] connected.');
socket.on('disconnect', () => {
console.log('disconnect.');
});
});
客户代码:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BestHTTP;
using BestHTTP.SocketIO;
public class SocketIOClientTest : MonoBehaviour
{
private SocketManager _manager = null;
// Start is called before the first frame update
void Start()
{
_manager = new SocketManager(new Uri("http://localhost:9314/socket.io/"));
_manager.Socket.On("connect", (socket, packet, args) => { Debug.Log("1"); });
}
}
答案 0 :(得分:0)
BestHTTP已被正式记录下来,您一定应该阅读它。 我在项目中使用的是:
private void OnDestroy()
{
_socket?.Disconnect();
_socketManager?.Close();
}