【问题标题】:Can i communicate JAVA to Javascript using Sockets?我可以使用套接字将 JAVA 与 Javascript 通信吗?
【发布时间】:2017-06-14 00:51:42
【问题描述】:

所以,我有这个 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();
}

节点 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 连接。

有谁知道为什么会发生这种情况/知道另一种方法吗?

(构建成功(总时间:0 秒))。

【问题讨论】:

    标签: javascript java node.js sockets


    【解决方案1】:

    我可以使用 Sockets 将 JAVA 与 Javascript 通信吗?

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

    您的 node.js 应用正在配置 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 连接的外观,请参阅this article。它以 http 请求开始,带有升级标头和一些安全标头。然后服务器以某种方式响应,告诉客户端协议可以从 http 协议升级到 webSocket 协议。 Socket.io,然后在此之上具有数据格式。您不必自己从头开始实现它,因为已经有用于 Java 的 socket.io 客户端类。

    【讨论】:

    • @IgorSantosdeLima - 这回答了你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2011-06-09
    • 2013-01-27
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多