gpt4 book ai didi

javascript - firefox webgl 上的 Websocket

转载 作者:行者123 更新时间:2023-11-29 19:30:35 32 4
gpt4 key购买 nike

我的游戏有问题。我正在使用 WebGL 的 Unity3D 5 开发游戏。游戏使用网络套接字连接到服务器,地址如下所示:

wss://serveraddress:8443/moreaddress

它使用 javascript 实现连接到服务器。 javascript 看起来像这样:

var WSClient = {
socket: null,
url: null,

connect: function(host) {
if ('WebSocket' in window) {
this.socket = new WebSocket(host);
} else if ('MozWebSocket' in window) {
this.socket = new MozWebSocket(host);
} else {
Console.log('Error: WebSocket is not supported by this browser.');
return;
}

this.socket.onopen = function()
{
SendMessage("WebSocketManager","OnOpenWebSocket");
};

this.socket.onclose = function() {
SendMessage("WebSocketManager","OnCloseWebSocket");
};

this.socket.onmessage = function(message) {
if(typeof message == "string"){
SendMessage('WebSocketManager','OnMessageReceived', message);
}
};
},

initialize: function(url) {
if (typeof url !== "undefined")
this.url = url;

if (this.url == null) {
Console.log('Info: Initialize without an URL');
return;
}

this.connect(this.url);
},

sendMessage: function(msg) {
if (msg != '') {
this.socket.send(msg);
}
},

close: function() {
this.socket.close();
}
};

SendMessage函数只是Unity中调用一个函数的东西。所以基本上发生在我身上的是在我的游戏连接到服务器之后,onOpen() 函数被调用,然后从 Unity 调用我的 OnOpenWebSocket() 函数,然后它尝试向服务器发送一条消息以登录,服务器收到消息并尝试向我发送一个答案,但我在 onMessage() 函数中得到的只是这条消息:{ "isTrusted":true}.

这发生在 Firefox 上,但在 Chrome 上工作得很好。在 Chrome 上,我从服务器收到了正确的消息。而且在服务器中没有任何地方可以写isTrusted

我正在使用 Firefox 33.0。和 Chrome 39.0.2171.95

我查看了firefox的about:configwebsocket是开启的。

有人知道是什么原因造成的吗?

最佳答案

我在尝试使用 websockets 时遇到了同样的问题。我将代码更改为

var ws = new WebSocket("ws://localhost:3331"); // some url
ws.onmessage = function(event) {
console.log(event.data);
}

然后它在 firefox 上工作了! onmessage 回调的类型为 EventListener 并接收 MessageEvent 作为参数,参见 https://developer.mozilla.org/en-US/docs/Web/API/WebSocket .

关于javascript - firefox webgl 上的 Websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869491/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com