首页 > 解决方案 > Websocket连接错误 - Visual Studio Apache Cordova

问题描述

我正在 Visual Studio 2017 中创建一个新的 Apache Cordova 项目。大部分代码都是在某处挑选的。它无法从物理手机连接到正在运行的服务器。从网络服务器提供的同一网页能够从同一部手机连接,因此不是防火墙问题。似乎是权限问题。正如您在 Content-Security-Policy 中看到的那样,我正拼命尝试打开所有内容。

索引.html:

<meta charset="utf-8" />
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval'; connect-src: ws:; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
<title>WebSocket Test</title>
<script language="javascript" type="text/javascript">

    var wsUri = "ws://192.168.18.162:8352/ServidorMobil";
    var output;

    function init() {
        output = document.getElementById("output");
        testWebSocket();
    }
    function testWebSocket() {
        websocket = new WebSocket(wsUri);
        websocket.onopen = function (evt) { onOpen(evt) };
        websocket.onclose = function (evt) { onClose(evt) };
        websocket.onmessage = function (evt) { onMessage(evt) };
        websocket.onerror = function (evt) { onError(evt) };
    }
    function onOpen(evt) {
        writeToScreen("CONNECTED");
        doSend("WebSocket rocks");
    }
    function onClose(evt) {
        writeToScreen("DISCONNECTED");
    }
    function onMessage(evt) {
        writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data + '</span>');
        websocket.close();
    }
    function onError(evt) {
        writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
    }
    function doSend(message) {
        writeToScreen("SENT: " + message);
        websocket.send(message);
    }
    function writeToScreen(message) {
        var pre = document.createElement("p");
        pre.style.wordWrap = "break-word";
        pre.innerHTML = message;
        output.appendChild(pre);
    }
    window.addEventListener("load", init, false);
</script>

<h2>WebSocket Test</h2>
<div id="output"></div>

我还在 config.xml 中添加了:

<allow-intent href="ws:*" />

唯一安装的插件是白名单(我多次重新安装它)。谢谢

标签: javascriptvisual-studiowebsocketapache-cordova

解决方案


推荐阅读