【发布时间】:2013-07-17 15:11:26
【问题描述】:
我有一个用 SSJS (Node) 编写的应用程序......这个应用程序需要向 fsockopen 请求的 php 脚本提供数据......好吧......这个服务器需要从第二个服务器收集数据持久连接。这该怎么做?使相同的过程协调这些连接?这可能吗?
var net = require('net');
/* #############################################
# "CLIENT" Used to connect to data server
# ---------------------------------
#############################################
*/
var clientConnect = net.createConnection(port, host);
clientConnect.setEncoding('utf8');
clientConnect.on('connect', function () {
console.log('Client','Connected to CAGEAPI');
clientConnect.write('user@pass');
});
clientConnectt.on('data', function (data) {
console.log('Client','Data received: ' + data);
});
clientConnect.on('close', function(code) {
console.log('Client','Connection closed');
});
clientConnect.on('error', function (err) {
console.log(err);
});
/* ################################################
#
# "SERVER" Used to serv data to PHPScripts
# --------------------------------
################################################
*/
var handleServer = net.createServer(function(server) {
console.log('Server','CONNECTED: ' + server.remoteAddress +':'+ server.remotePort);
server.on('data', function(data) {
console.log('Server','DATA ' + server.remoteAddress + ': ' + data);
// Write the data back to the socket, the client will receive it as data from the server
server.write('You said "' + data + '"');
});
// Add a 'close' event handler to this instance of socket
server.on('close', function(data) {
console.log('Server','CLOSED: ' + server.remoteAddress +' '+ server.remotePort);
});
}).listen(port2, host2);
(客户端和服务器)都工作正常......但是如何让他们互相交谈?
【问题讨论】:
-
您需要将客户端创建代码移动到服务器的
connection事件处理程序(您传递给net.createServer()的函数),并使用.pipe()将两个对等点的流连接在一起- 如果您想充当代理,直接在对等方之间启用全双工通信,而不需要 Node 的其他参与,则需要在两个方向上执行此操作。然而,有人认为这可能是一个不必要的复杂问题——你不能直接从 PHP 连接到远程主机吗?还是我错过了什么/ -
关于您的评论...我无法直接连接,因为数据服务器需要持久连接处理程序...他们不允许通过同一 IP 进行多个连接..
-
他们要求我制作一个 Python 或 C++ 应用程序来处理这种情况......但我会尝试用 js 来制作它
-
您希望如何在多个 PHP 客户端之间分配数据? PHP客户端会连接,检索自上次客户端连接后的所有数据然后消失吗?或者您是否希望将相同数据从数据源分发到多个客户端?
-
是的.. PHP 连接获取数据然后断开连接
标签: php javascript node.js