南锋

南奔万里空,脱死锋镝余

Cocos Creator 跨类共享 WebSocket:连接服务与消息订阅

创建共享 WebSocket 连接

首先,在负责网络连接的类中创建 WebSocket,并通过共享服务或事件分发器向其他类提供消息订阅能力。下面保留原文的全局变量示例:

1
2
3
4
5
6
7
8
9
10
let socket = new WebSocket("ws://your-socket-url");
// 将WebSocket对象设置为全局变量
window["socket"] = socket;
socket.onopen = function() {
console.log("WebSocket连接已建立");
};
socket.onmessage = function(event) {
console.log("接收到WebSocket数据", event.data);
// 在这里处理接收到的数据
};

在您的B类中获取全局的WebSocket对象。您可以使用以下代码:

1
2
3
4
5
6
7
// 获取全局的WebSocket对象
let socket = window["socket"];

// 设置WebSocket对象的事件处理程序
socket.onmessage = function(event) {
console.log("B类接收到WebSocket数据", event.data);
};

在上面的代码中,我们使用window对象的属性来获取全局变量。通过获取全局变量,您可以访问在A类中创建的WebSocket对象,并在B类中设置事件处理程序。