Simple Node.js chat program NOT using socket.io

2019-09-06 06:47发布

问题:

I am trying to learn Node and build a simple chat application. It seems like everyone uses socket.io. I would like to understand how to do this on a more fundamental level using get and post.

Basically, all I want to do is have a form that takes an input and reposts it below the form for everyone to see.

This is what I have so far:

//Requirements
var express = require('express'); 
var app = express(); 

//GET
app.get('/', function (req, res) {
 // res.send('Hello World!');
        var response =
          "<HEAD>"+
                  "<title>Chat</title>\n"+
          "</HEAD>\n"+
          "<BODY>\n"+
                    "<FORM action=\"/\" method=\"get\">\n" +
                            "<P>\n" +
                                   "Enter a phrase: <INPUT type=\"text\" name=\"phrase\"><BR>\n" +
                                   "<INPUT type=\"submit\" value=\"Send\">\n" +
                           "</P>\n" +
                   "</FORM>\n" +
          "<P>phrase</P>\n"+
          "</BODY>";
        var phrase = req.query.phrase;
        if(!phrase){
                res.send(response);
        }else{
                res.send(response);
                res.send(phrase);
        }
});

//For testing
app.get('/test', function(req, res){
        res.send('I am a robot');
        console.log('told visiter I am a robot');
});

//Run the app
var server = app.listen(8080, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('App listening at http://%s:%s', host, port);
});

I've been trying a bunch of things, but I am pretty stumped.

回答1:

Did you hear about messaging backend jxm.io?

It works with JXcore (open sourced fork of Node.JS). JXM itself is an open source project, which you can find on github: jxm.

It's really fast and efficient, you can check some tutorials. For example, below is minimal code, that you need to run on server-side:

var server = require('jxm');
server.setApplication("Hello World", "/helloworld", "STANDARD-KEY-CHANGE-THIS");
server.addJSMethod("serverMethod", function (env, params) {
   server.sendCallBack(env, params + " World!");
});
server.start(); 

The client's part can be found here: Browser Client (JavaScript)

JXM also supports Java clients (runs on android) and node clients.