javascript - 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:*" />
唯一安装的插件是白名单(我多次重新安装它)。谢谢
解决方案
推荐阅读
- python - 在 python dict.get() 中引发异常
- sql-server - 通过 SQL 导入导出向导导出表时缺少目标服务器
- greenplum - 查询从 URL 读取数据
- angularjs - 升级到 Angular/AngularJS 混合应用程序:获取打字稿错误/AngularJS 导入错误
- java - 为什么即使提供了初始容量,我们也不能在将元素添加到第 (n-1) 个索引之前将元素添加到第 n 个索引的列表中
- apache-kafka - 对于 kafka 消费者 jmx 指标,records-lag-max 没有获得价值
- c# - 在同一个画布中创建了一个重复的文本,但第二个不起作用
- office365 - Office 365 Outlook,不接收邮件
- docker - 如何在circleci中传递环境变量而不提交git
- javascript - Use toggleClass to only toggle one item/div