向node.js/socket发送数据.io服务器从JAVA
sending data to node.js/socket.io server from JAVA
我正在尝试发送消息到我的node.js/socket。
这是我用来发送消息的代码
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
class socketMessage {
public socketMessage() {
}
public static void send(String string) throws Exception {
System.out.println("Sending message to Socket Server!");
URL url = new URL("http://<mysite>:8000");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
try (OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream())) {
System.out.println("Data Sent!");
writer.write(string);
writer.flush();
}
conn.getResponseCode(); // Thanks to BGR
}
}
被:socketMessage.send("Admin|notification|Logged in elsewhere'n> Official Java App");
服务器端代码:
var http = require("http");
var io = require('socket.io');
var sessionsConnections = {};
var whereIsUserVisitingFrom = {};
console.log("'n'n-------------------------------- Server Started --------------------------------");
var server = http.createServer(function(req, res){
var body = '';
req.on('data', function(data){
console.log('Received Data');
body += data;
});
req.on('end', function() {
// Emit the data to all clients
ioServer.emit('message', { message: body });
});
});
server.listen(8000);
var ioServer = io.listen(server, { log: false });
ioServer.on('connection', function(socket) {
var currentUser;
var parts;
socket.on('started', function(data) {
currentUser = data.username;
sessionsConnections[currentUser] = socket.id;
whereIsUserVisitingFrom[currentUser] = data.from;
socket.emit("connected", { message: "Welcome, " + currentUser + "!" });
socket.broadcast.emit("updateUsers", { message: sessionsConnections, from: whereIsUserVisitingFrom });
socket.emit("updateUsers", { message: sessionsConnections, from: whereIsUserVisitingFrom });
});
socket.on('message', function(data) {
var parts = data.message.split("|");
socket.broadcast.emit("updateUsers", { message: sessionsConnections, from: whereIsUserVisitingFrom });
socket.emit("updateUsers", { message: sessionsConnections, from: whereIsUserVisitingFrom });
console.log("Message Recieved!");
if( parts[0] == "*" ) {
socket.broadcast.emit("display", { message: data.message });
}else{
if( parts[0] in sessionsConnections ) {
io.sockets.socket(sessionsConnections[parts[0]]).emit("display", { message: data.message });
}else{
socket.emit("display", { message: "That user is not online!" });
}
}
});
socket.on('disconnect', function() {
delete sessionsConnections[currentUser];
socket.broadcast.emit("updateUsers", { message: sessionsConnections, from: whereIsUserVisitingFrom });
socket.emit("updateUsers", { message: sessionsConnections, from: whereIsUserVisitingFrom });
});
});
基本上什么我的服务器目前当我访问我的网站,然后发送一个命令从我管理中心的形式"{user} |{行动(即通知)}|{文本/extra_param (s)}",它将发送一个消息到客户端你设置为{user},然后我在客户端代码将消息分为部分,并相应地改变了网站界面,但是我也想做这个从我的Java应用程序,它不是工作:(
有什么想法
文尼
Thanks in advance
要完成HTTP连接,必须读取HTTP响应。
在try
块之后插入conn.getResponseCode()
add
conn.getResponseCode()
仍然不能使此工作。最后我找到了插座。io-java客户机正是我们需要的。因为插座。我不使用你原来使用的websocket,而是在它上面添加了一个协议,你的代码"data"事件将永远不会触发。
相关文章:
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 通过node.js和socket.io向特定用户发送数据
- Socket.io socket.emit 不将数据传递到服务器
- 使用其他javascript文件nodejs和express发送和获取数据 socket.io
- 如何使用socket.io获取cookie数据
- 是否自动更新套接字连接数据?socket.io
- 每个客户端保存socket.io数据
- 如何在express中使用socket.io发布多个对象数据
- Socket.IO:如何在同一服务器中的Socket.on()事件之间通信/交换数据
- 使用socket.io发送数据
- Socket.io-向发送方和客户端发送不同的数据
- 如何从我的 import.io API 获取数据
- 将数据追加到所有 Socket.io 客户端发射器
- 如何使用 import.io 中的数据创建 Web 应用
- 如果在节点 JS 中落后于 Socket.IO,则丢弃数据包
- Socket.io - 每 34 毫秒接收一次数据
- Socket.io 清理传入数据 (XSS)
- Socket.IO 将数据发送到房间给自己
- Node.js + Socket.io 如何从 PHP 接收数据
- Socket.io 数据包在断开连接和重新连接之间丢失