我正在尝试从统一的无头服务器到WEBGL客户端构建安全的网络套接字。我知道它本身不受支持。我已经看到了不安全的示例,我已经将它们用于本地构建。 WebGL会由于在网站上使用https而在后端使用不安全的连接而抛出错误。其他人已经使它起作用了,但是我找不到“它起作用”的例子,所以我不知所措。
DOMException: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
但是,当我正在学习C#(我来自Python)时,我尝试遵循其他一些指南,并且在websockets方面没有很多经验。我不确定hpw是否可以构建安全方法。
Unity Build:2019.2
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using WebSocketSharp;
public class WebSocketDemo : MonoBehaviour
{
// Use this for initialization
void Start()
{
Debug.Log("WebSocket Class");
// Create WebSocket instance
using (var ws = new WebSocket("ws://echo.websocket.org"))
{
Debug.Log(ws.ReadyState);
// Add OnOpen event listener
ws.OnOpen += (sender, e) => {
Debug.Log("WS connected!");
Debug.Log("WS state: " + ws.ReadyState);
ws.Send(Encoding.UTF8.GetBytes("Hello from Unity 3D!"));
};
// Add OnMessage event listener
ws.OnMessage += (sender, e) => {
Debug.Log("WS received message: " + e.Data);// Encoding.UTF8.GetString(e.Data));
ws.Close();
};
// Add OnError event listener
ws.OnError += (sender, e) => {
Debug.Log("WS error: " + e.Exception);
};
// Add OnClose event listener
// Connect to the server
ws.Connect();
}
}
// Update is called once per frame
void Update()
{
}
}
老实说,我需要一些讲义的讲义。上面的代码适用于ws,但是我不知道客户端和服务器端的wss还需要什么。如您所知,我只是要联系echo.websocket.org进行测试。
DOMException: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
听起来像您使用的是不安全的网络套接字连接。让我们来看看您的URI:
using (var ws = new WebSocket("ws://echo.websocket.org"))
ws
表示不安全。让我们使其变得安全。使用wss
作为协议。现在这行看起来像:
using (var ws = new WebSocket("wss://echo.websocket.org"))