【问题标题】:Interact with express server with net server - NodeJS使用网络服务器与 express 服务器交互 - NodeJS
【发布时间】:2018-01-02 20:02:05
【问题描述】:

所以我脑子里有个想法,当你运行 nodejs 脚本时,它会在端口 8080 上启动 http(express) 服务器,在端口 1337 上启动常规 tcp(net) 服务器。当你通过 netcat 连接到 tcp 服务器并发送“ alert" 它通过 javascript 在网页上运行 alert() 命令。这是代码,但 if 语句不起作用(它正在打印数据但在我的网络浏览器上没有警报)

var app = require("express")();
var http = require("http").Server(app);
var io = require("socket.io")(http);
var net = require("net");

app.get("/", function(req, res) {
    res.sendFile(__dirname + "/index.html");
});

var server = net.createServer();

io.on("connection", function(sock) {
    console.log("Client connected");

    server.on("connection", function(conn) {
    var remoteAddress = conn.remoteAddress + ":" + conn.remotePort;
    console.log("New client: " + remoteAddress);

    conn.on("data", function (data) {
        console.log(data.toString())
        if (data.toString() == "alert") {
            console.log("YES ALERT");
            io.emit("HELLO");
        }
    });
    conn.once("close", function () {
        console.log(remoteAddress + " disconnected");
    });
    conn.on("error", function (error) {
        console.log(remoteAddress + " Error: " + error);
    });});
});

server.listen(1337, function() {
    console.log("Listening on 1337");
});

http.listen(8080, function() {
    console.log("Web server started on 8080");
});

【问题讨论】:

  • console.log(data) 显示什么?
  • 我通过 netcat 发送的数据
  • 我的意思是控制台到底显示了什么
  • console.log(data) 显示:
  • console.log(data.toString()) 显示实际数据

标签: javascript node.js tcp


【解决方案1】:

在您的网页中包含socket io客户端js并连接到socket服务器

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io('http://localhost:1337');
  socket.on('connect', function(){});
  socket.on('event', function(data){ alert(data.message)  });
  socket.on('disconnect', function(){});
</script>

您可以更改服务器端代码,以发出事件以与我上面的示例一起使用。

io.emit("event",{"message":"HELLO"});

【讨论】:

  • 它不起作用.. socket.io 没有监听 1337 端口,它监听 8080
猜你喜欢
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多