NodeJs-如何使用socket.io将tcp数据包发送到局域网中的另一台计算机

问题描述 投票:0回答:1

我在基于Web的套接字中具有NodeJ的Web服务。我在服务器端的文件之一尝试将xml发送到IP地址为192.168.1.5的局域网中的打印机,但是此IP在我的物理网络中,而不在服务器端的局域网中。当我在localhost上打开Web服务时,它可以工作,但是当我通过网络打开服务时,则不起作用。我该如何使用Web套接字,Nodejs应用程序将像我一样使用套接字客户端将通过TCP将xml发送xml到局域网中的另一个localhost?

例如(我的局域网):

本地主机-192.168.1.100

打印机-192.168.1.5

本地主机(我的物理计算机)->在浏览器上打开Web服务(NodeJS)->运行脚本(服务)->通过TCP将xml发送到打印机(192.168.1.5)

这种情况可能吗?

node.js xml tcp socket.io feathersjs
1个回答
0
投票

您不能直接使用webSocket或socket.io发送纯TCP数据包。 webocket是它自己的协议,socket.io在webSocket上运行。它使用http请求发起连接,使用其自己的数据格式框架和自身的安全性方案。因此,webSocket客户端只能连接到webSocket服务器或socket.io客户端连接到socket.io服务器,而不能连接到普通TCP设备。

您可以使用node.js中的Net模块进行简单的TCP连接。因此,如果可行,您可以直接从node.js与打印机联系。

但是,如果不使用某种可以访问本机代码的浏览器插件,或者不向服务器发送某种http或webSocket或socket.io请求,则无法直接通过浏览器网页直接建立纯TCP连接并让服务器代表您与打印机联系(这将要求服务器和打印机位于同一本地网络上。)>

© www.soinside.com 2019 - 2024. All rights reserved.