欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - 通过js 用websocket 连接打印机 进行打印问题

程序员文章站 2022-04-18 14:25:35
...
通过js 用websocket 连接打印机 进行打印,已知打印机的端口是默认开的,通过PHP代码
$s = fsockopen("192.168.1.122", 8081,$errno, $errstr, 30);
 fwrite($s,"abcjiuejseeeeeeeee2222222222ss");

这样打印是可以的,但通过JS的websocket连接就只打印头信息,是什么情况?

js 代码是:

ws = new WebSocket("ws://192.168.1.122:8081/");
console.log(ws);
ws.onopen = function (e) {
    console.log(e);
    console.log("连接成功");
    ws.send('2222222222222222222222222222');
};
ws.onclose = function(e) {
    console.log("连接关闭");
};
ws.onerror = function(e) {
    console.log("出现错误");
};

js 这边是进不去 ws.open

回复内容:

通过js 用websocket 连接打印机 进行打印,已知打印机的端口是默认开的,通过PHP代码

$s = fsockopen("192.168.1.122", 8081,$errno, $errstr, 30);
 fwrite($s,"abcjiuejseeeeeeeee2222222222ss");

这样打印是可以的,但通过JS的websocket连接就只打印头信息,是什么情况?

js 代码是:

ws = new WebSocket("ws://192.168.1.122:8081/");
console.log(ws);
ws.onopen = function (e) {
    console.log(e);
    console.log("连接成功");
    ws.send('2222222222222222222222222222');
};
ws.onclose = function(e) {
    console.log("连接关闭");
};
ws.onerror = function(e) {
    console.log("出现错误");
};

js 这边是进不去 ws.open

$s = fsockopen("192.168.1.122", 8081,$errno, $errstr, 30);
ws = new WebSocket("ws://192.168.10.120:8081/");

大兄弟,你发现了什么微妙的差异了么?
192.168.1.122
192.168.10.120

Websocket是基于需要进行握手验证的,你可以看一看Tcp协议的三次摸手和websocket和PHP的socket的通信