你能从另一台计算机上的命令行js脚本连接到正在运行的Node JS服务器吗?

时间:2016-01-27 13:43:04

标签: javascript node.js socket.io

我现在花了太多时间在这上面并且无法得到解决方案。

我有一个节点服务器运行完美(非常基本)但工作并且有可以连接和使用服务器的网页。

但我现在需要做的是从基于debian的Raspberry pi运行一个使用Node的JS文件,它可以连接到我现有的节点服务器。

这是可能的还是我对节点的理解不正确。

这是我的基本服务器

@Results({
    @Result(name = ActionSupport.SUCCESS, type="httpheader", params = {"status", "200"}),
    @Result(name = ActionSupport.ERROR,   type="httpheader", params = {"error",  "500"})
})
public class IsDownloadFinished extends ActionSupport implements SessionAware {

    @Setter private Map session;

    public String execute(){            
        if ("finished".equals(session.get("DOWNLOAD_STATUS")) {
            session.remove("DW_STATUS");
            return SUCCESS;
        }
        return ERROR;
    }
}

这就是我期望通过cmd line JS文件连接的方式。

(这根本不起作用)

var socket = require('socket.io');
var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

var io = socket.listen(server);


io.on('connection', function (client) {
    console.log('Connected');


    client.on('deviceevent', function (data) {
        io.sockets.emit('return',{ param1: data.param1, param2: data.param2, param3: data.param3 });
    console.log(data);
    });

    client.on('disconnect', function () {
    io.sockets.emit('user disconnected');
  });   
});


server.listen(3000);
console.log('Listening');

甚至可能吗?我有服务器工作,但是如果我能得到一个js文件,我可以在cmd行运行连接,该死的。

任何帮助都会有很大的帮助。

顺便说一句。 socket.io示例都与连接到我已经在做的服务器的网页有关。

1 个答案:

答案 0 :(得分:1)

您需要使用 socket.io-client 连接到socket.io服务器

var io = require('socket.io-client');

mysocket = io.connect('http://192.168.1.70:3000');

mysocket.on('connect', function(){
  mysocket.emit('deviceevent', { param1: "update", param2: "0", param3: "1" });
});

类似的问题:How to connect two node.js servers with websockets?