我可以使用套接字将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客户端类。
- 如何使用Node.js / Express + Passport + Websockets进行身份validation?
- JavaScript的Socket io和诺言
- ASP.NET中的Socket.IO服务器替代
- 在android和nosejs之间通过套接字发送文件
- socket.io 1.0.0 ^:使用默认的房间与自定义房间进行用户特定的通信
- callback函数socket.io + node.js
- 在水平伸缩的WebSocket服务器上负载均衡套接字?
- 如何devise使用Node.js进行游戏配对
- Node.js与Socket.io – 长轮询失败,并抛出“代码”:1,“消息”:“会话ID未知”响应