我正在寻找一种方法,可以从套接字(例如example.com:8000
)向我的Web服务器发送数据,而不是在套接字example.com/index.php.
上,我一直在寻找代码,但是我没有找到了任何答案。如果您编写示例代码,是否可以显示var x
,即从Nodejs到客户端的=等于2?
谢谢。
答案 0 :(得分:1)
如果您使用NodeJS作为服务器,那么我建议使用此软件包: npm ws,这是服务器端的超轻Web套接字。
现在,以您的示例为例:
服务器端:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
客户端
const socket = new WebSocket('ws://127.0.0.1:8080/');
socket.onopen = () => {
console.log("I'm open!");
socket.send('Sending from client');
}
socket.onmessage = (message) => {
console.log('Received: ', message);
console.log('Received Data: ', message.data);
}
console.log
,上面写着“已收到:从客户端发送” 您将在客户端上看到两个console.log:
Received: MessageEvent {isTrusted: true, data: "something", origin:
"ws://127.0.0.1:8080", lastEventId: "", source: null, …}
AND
Received Data: something
收到的数据“某物” 是从ws.send('something');
上的服务器发出的,您可以将其更改为JSON类型的字符串,然后使用以下命令在客户端上解析message.data
JSON.parse(message.data)
注意::在客户端上,WebSocket()
是本机API,因此与NodeJS服务器不同,您不需要导入任何内容,而需要NPM软件包。
您实际上可以通过开发人员控制台测试客户端。