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

所以,我有这个Java应用程序返回给我一些数据。 这些数据打印在TXT中,并保存在我的电脑上。

我想通过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(); } 

节点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立成功(总时间:0秒))。 安慰

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

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

您的node.js应用程序正在configuration一个socket.io服务器。 这是一个webSocket服务器,它在webSocket数据包的顶部添加了一些额外的socket.io格式。

你的Java服务器是一个普通的TCP连接,不能用于socket.io服务器。 您的Java服务器必须是一个socket.io客户端才能与一个socket.io服务器通信。 它必须说出正确的协议才能沟通。

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

请记住,socket.io是webSocket协议之上的一个层,因此您的Java客户端必须同时说出这些层以便与您的nodejs socket.io服务器进行通信。 如果您想查看webSocket连接的外观,请参阅这篇文章 。 它从一个http请求开始,带有一个升级头和一些安全头。 然后服务器以某种方式响应,告诉客户端协议可以从http协议升级到webSocket协议。 Socket.io,然后有一个数据格式在此之上。 你不应该从头开始实现这个,因为已经有了Java的socket.io客户端类。