【发布时间】:2018-06-24 05:10:50
【问题描述】:
我有一个 Windows 应用程序(作为 Windows 服务构建在 C# 上)将数据发送到 NodeJs Net Socket,因此,由于 Socket.IO 有助于使 Web 应用程序成为实时应用程序,而无需重新加载。如何在 Net Socket 从 C# 接收数据的那一刻允许 Socket.IO 将接收到的数据从 NodeJs Net Socket 流式传输到 Web 应用程序?
所以在从 C# 接收套接字数据的代码中:
var net = require('net');
net.createServer(function (socket) {
socket.on('data', function (data) {
broadcast(socket.name + "> \n" + data + " \n", socket);
socket.end("<EOF>");
//send data to web interface , does it work that way?
//SomeFooToSendDataToWebApp(Data)
});
});
关于 Socket.IO 的更多信息,我有这些行,我真的不知道如何处理它们:
//Should it listen to net socket or web socket?
server.listen(8080);
// Loading socket.io
var io = require('socket.io').listen(server);
// It works but only for one request
io.sockets.on('connection', function (socket2) {
socket2.emit('message' , 'Message Text');
});
P.S:我是 nodejs 和 socket.io 的新手,所以如果有可能也解释一下他们的行为。
编辑 1:我的前端 Javascript 以检查它是否有任何问题:
//for now it listens to http port , which Socket.IO listens to
var socket = io.connect('http://localhost:8080');
var myElement = document.getElementById("news");
socket.on('message', function(message) {
document.getElementById("news").innerHTML = message;
})
编辑 2:是否遵循 jfriend00 的回答,因为似乎我之前的代码尝试尝试将消息发送到未知套接字,我只是添加了这个,因为我需要将它发送到所有连接的客户端,所以只有一行修复了它!
socket.on('data', function (data) {
broadcast(socket.name + "> \n" + data + " \n", socket);
socket.end("<EOF>");
//send data to web interface , does it work that way?
//The Added code here:
io.emit('message',data + " more string");
});
【问题讨论】: