gpt4 book ai didi

javascript - 我可以使用套接字将 JAVA 与 Javascript 通信吗?

转载 作者:行者123 更新时间:2023-11-30 15:15:29 25 4
gpt4 key购买 nike

所以,我有这个 Java 应用程序可以返回一些数据。此数据以 TXT 格式打印并保存在我的 PC 上。

我想通过 Socket 发送此信息,而不是保存在 TXT 中。 (下面的例子)

Java

public static void main(String argv[]) throws Exception {

Socket clientSocket = new Socket();
SocketAddress sockaddr = new InetSocketAddress("localhost", 3000);

clientSocket.connect(sockaddr);

clientSocket.close();
}

Node JS

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
});

io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log(msg);
});
});

http.listen(3000, function(){
console.log('listening on *:3000');
});

问题是,Java 类连接了 NodeJS 服务器。 (我正在使用 socket.io)但是 NodeJS 无法识别 Java 连接。

有谁知道为什么会这样/知道另一种方法吗?

(BUILD SUCCESSFUL (total time: 0 seconds)). console

最佳答案

Can i communicate JAVA to Javascript using Sockets?

是也不是。是的,您可以使用 socket.io 从 Java 到 Javascript 进行通信。不,您不能使用 Java 中的普通 TCP 套接字与 socket.io 服务器通信。您需要有一个 socket.io 客户端(具有它使用的整个协议(protocol)和连接方案)才能与 socket.io 服务器通信。

您的 node.js 应用正在配置 socket.io 服务器。这是一个 webSocket 服务器,它在 webSocket 数据包之上添加了一些额外的 socket.io 格式。

您的 Java 服务器是普通的 TCP 连接,不能与 socket.io 服务器一起使用。您的 Java 服务器必须是 socket.io 客户端才能与 socket.io 服务器通信。它必须使用正确的协议(protocol)才能进行通信。

您可以获得 socket.io 客户端的 Java 类,然后它应该能够正确连接到您的 socket.io 服务器。

请记住,socket.io 是 webSocket 协议(protocol)之上的一个层,因此您的 Java 客户端必须使用这两个层才能与您的 nodejs socket.io 服务器进行通信。如果您想查看 webSocket 连接是什么样子,请参阅 this article .它以一个 http 请求开始,带有一个升级 header 和一些安全 header 。服务器然后以某种方式响应告诉客户端协议(protocol)可以从http协议(protocol)升级到webSocket协议(protocol)。 Socket.io,然后在此之上有一种数据格式。您不必自己从头开始实现它,因为已经有用于 Java 的 socket.io 客户端类。

关于javascript - 我可以使用套接字将 JAVA 与 Javascript 通信吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44533703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com