Ошибка: обнаружена неподдерживаемая версия WebSocket: HyBi-00/Hixie-76
Я пытался интегрировать мое угловое 7 веб-приложение с QZ Tray для печати без предварительного просмотра. Но получил неподдерживаемую версию WebSocket. Пожалуйста, помогите мне решить это? Спасибо
- Dependencies
"dependencies": {
"@agm/core": "^1.0.0-beta.6",
"@angular/animations": "^7.2.11",
"@angular/cdk": "^7.3.6",
"@angular/common": "^7.2.11",
"@angular/compiler": "^7.2.11",
"@angular/core": "^7.2.11",
"@angular/forms": "^7.2.11",
"@angular/http": "^7.2.11",
"@angular/material": "^7.2.11",
"@angular/platform-browser": "^7.2.11",
"@angular/platform-browser-dynamic": "^7.2.11",
"@angular/router": "^7.2.11",
"@angular/upgrade": "^7.2.11",
"js-sha256": "^0.9.0",
"qz-tray": "^2.0.10",
"roboto-fontface": "0.8.0",
"rxjs": "6.4.0",
"rxjs-compat": "6.3.0",
"sha": "^3.0.0",
"ws": "7.0.0",
"zone.js": "^0.8.29"
},
Теперь вот что я сделал
import * as qz from 'qz-tray';
import { sha256 } from 'js-sha256';
qz.api.setSha256Type(data => sha256(data));
qz.api.setPromiseType(function promise(resolver) { return new Promise(resolver); });
qz.api.setWebSocketType(require('ws'));
var createHash = require('sha.js');
qz.api.setSha256Type(function(data) {return createHash('sha256').update(data).digest('hex');});
qz.websocket.connect().then(qz.printers.getDefault).then(printer => console.log("Default printer: " + printer))
.then(qz.websocket.disconnect)
.catch(err => console.error(err));
Выходной журнал:
utils.ts:414 Error: Unsupported WebSocket version detected: HyBi-00/Hixie-76 at qz-tray.js:667 at new ZoneAwarePromise (zone.js:910) at Object.promise (utils.ts:21) at Object.connect (qz-tray.js:654) at Utils.push../src/app/@core/one.utils/utils/common/utils.ts.Utils.initPrinterService (utils.ts:405)
0 ответов
Заменить ws
проект с w3cwebsocket
.
// Node example, adjust to your implementation as-needed
var qz = require("qz-tray");
// Use default Promise provided by JS
qz.api.setPromiseType(function promise(resolver) { return new Promise(resolver); });
// Simulate the browser's version of the websocket
qz.api.setWebSocketType(require('websocket').w3cwebsocket);
// There's a bunch of sha256 libs out there, choose one
var createHash = require('sha.js');
qz.api.setSha256Type(function(data) {
return createHash('sha256').update(data).digest('hex');
});
qz.websocket.connect().then(function() {
return qz.printers.find();
}).then(function(printers) {
console.log(printers);
}).then(function() {
return qz.websocket.disconnect();
}).then(function() {
process.exit(0);
}).catch(function(err) {
console.error(err);
process.exit(1);
});