繁体   English   中英

通过html页面中的node.js tcp socket发送数据

[英]Sending data through node.js tcp socket from html page

Hy,我问,因为我想清楚我对Node.js中网络套接字的看法:

我有一个简单的服务器,可以复制收到的数据。 它看起来像这样:

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 1337;

net.createServer(function(sock) {

    console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);

    sock.on('data', function(data) {

        console.log('DATA ' + sock.remoteAddress + ': ' + data);
        sock.write('You told me: ' + data);

    });

    sock.on('close', function(data) {
        console.log('CLOSED: ' + sock.remoteAddress +' '+ sock.remotePort);
    });

}).listen(PORT, HOST);

console.log('Server listening on ' + HOST +':'+ PORT);

因此,如果我想制作一个非常简单的html页面,如下所示:

<input type="text" name="data" value="" />
<input type="button" value="Send data" onclick="send()" />
<div id="result"></div>

现在我将单击按钮,页面将数据发送到服务器,并将答案写入“result”div。 我需要在函数“send()”中编写或使用(只是为了发送数据并接收答案)? 我搜索了很多这样的东西,但不幸运......我需要在服务器文件中添加一个http服务器吗?

我建议您在服务器和客户端使用SockJS模块。 查看客户端的此示例:

 var sock = new SockJS('YOUR_SOCKJS_URL');
 sock.onopen = function() {
     console.log('open');
 };
 sock.onmessage = function(e) {
     console.log('message', e.data);
 };
 sock.onclose = function() {
     console.log('close');
 };

 function send(){   // this for onclick="send()"
     sock.send();
 }  

对于服务器使用Sockjs模块。 例:

var http = require('http');
var sockjs = require('sockjs');

var echo = sockjs.createServer({ sockjs_url: 'http://cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js' });
echo.on('connection', function(conn) {
    conn.on('data', function(message) {
        conn.write(message);
    });
    conn.on('close', function() {});
});

var server = http.createServer();
echo.installHandlers(server, {prefix:'/echo'});
server.listen(9999, '0.0.0.0');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM