从 html 页面通过 node.js tcp 套接字发送数据
Sending data through node.js tcp socket from html page
嗨,我问是因为我想清楚地了解 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');
嗨,我问是因为我想清楚地了解 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');