Articles of 客户端服务器

使用节点服务器与NowJS发送JavaScript文件

这个问题应该简单回答任何有Node经验的人 – 不幸的是我是一个极端的新手。 我正在编写一个棋盘游戏的Web应用程序,它将使用服务器 – 客户端体系结构来向所有客户显示对棋盘进行的实时更改。 该应用程序使用Raphael来显示graphics。 我已经创build了一个成功发送HTML文件以响应任何请求的服务器,但是该板不显示 – 只有没有任何Javascript的原始HTML出现。 我认为这是因为我已经编程服务器总是以HTML文件作出回应,我不知道如何发送JavaScript文件(client.js,raphael.js)到客户端,以便页面可以正确加载。 相关代码如下。 现在,我只是想让浏览器绘制一个Raphael元素,这样我就可以看到客户端正确地获取了加载页面所需的Javascript文件。 在服务器端: var fs = require('fs'); var server = require('http').createServer(function(req, response){ fs.readFile('index.html', function(err, data) { response.writeHead(200, {'Content-Type':'text/html'}); response.write(data); response.end(); }); }); 在客户端: $(document).ready(function(){ var R = Raphael("container", 1000, 700); this.R.path("M0,0l1000,700").attr({"stroke-width": "5"}); }); 您可以假定HTML文件格式正确,并包含所有JS文件的引用 – 我已经有一段时间没有服务器 – 客户端体系结构的应用程序运行良好。 另外,我使用的是NowJS,所以包含这个框架的任何解决scheme都会受到欢迎。 谢谢你的帮助!

如何将数据从C#推送到ZeroMQ,并从Node.JS进行提取,反之亦然?

场景 : 我想通过ZeroMQ从C#сonsole应用程序发送一个数据(比如Stringtypes)到Node.JS服务器。 信息: C#使用clrzmq,C#和Node.JS使用ZeroMQ库 我能够从Node.JS执行推挽 ,也是从C# 推拉 。 因此,有一点可以肯定的是, ZeroMQ – 智能传输层安装在机器上(Windows 7 64位) 问题 : 我无法将数据从C#控制台应用程序推送到Node.JS应用程序(甚至尝试反之亦然),都在同一台计算机上,并在相同的地址即tcp://127.0.0.1:2222 Node.js代码: var zmq = require('zeromq.node'); var pull_socket = zmq.socket('pull'); pull_socket.connect('tcp://127.0.0.1:2222'); pull_socket.on('message', function (data) { console.log('received data:\n'); console.log(data); }); C#代码: namespace DataServiceEngine { class Program { static void Main(string[] args) { //clsApp App = new clsApp(); //App.appId = […]

何时可以将套接字客户端断开

请看下面的代码。 这是nodeJS中的一个简单的程序。 问题是为什么disconnect不打印? (如果你取消setTimeout注释,问题就消失了)真正的问题是什么?为什么我不能一起启动socketIO客户端和服务器,并在连接之后立即closures套接字? 什么是与socketIO连接的技术? "use strict"; var Promise = require("bluebird"); var socketio = require("socket.io"); var socketio_client = require("socket.io-client"); var http = require("http"); var port = 7457; var hostandport = "http://localhost:" + port.toString(); var server = socketio.listen(port); var client = socketio_client(hostandport); server.sockets.on("connect", function (socket) { console.log("connect"); socket.on("disconnect", function () { console.log("disconnect"); }); //setTimeout(function() { client.disconnect(); […]

如何让node.js服务器也发送js文件?

我有一个node.js文件服务器运行哪(访问时)返回一个html内容。 同样在node.js文件的同一目录中,有一个名为test.js的JavaScript文件。 也在返回的HTML内容中,我需要加载该JavaScript文件。 但是,在HTML内容中,被返回,这被称为index.html ,脚本看起来像 <script type="text/javascript" src="test.js"></script> 但服务器不发送test.js文件,它只发送index.html文件,脚本链接从相同的目录加载它。 现在我不想给url的test.js文件。 我想要node.js文件也发送test.js文件,以便它最终在与index.html相同的目录。 然后index.html可以从同一个目录加载它。 有没有一种方法,我可以指定在node.js与代码也发送test.js文件? 谢谢。

Socket.io和Nodejs:向多个客户端发送响应并更改不被保存(?)

编辑:我的第一个问题已经解决(相当简单)。 第二个问题仍然有效,对于这个问题,我不知道如何解决这个问题。 我正在制作一个多人数独游戏。 我是Nodejs和套接字的新手,所以如果我的想法是错误的,请纠正我。 这是一个正在进行的工作,现在我正在做的是:当用户将一个值input到其中一个单元格中时,它将使用该单元格的索引发送到服务器的请求(?)。 然后,服务器从答题卡中find正确答案,并将结果发送回客户端。 然后,javascript代码将通过,如果正确的input被放置,它将把所有用户的答案( 注:我假设用户正在input正确的答案,现在我将工作在错误的答案部分之后 )。 问题: 1)现在,正确的答案将locking在单元格中提交正确答案的人,但不会显示给所有客户。 2)如果我向另一个单元格提交答案(无论是否正确),它将删除以前的更改 – 也就是用户先前input并locking的单元格, 这是我的JavaScript代码: function closeCellInput($cell) { var index = $boardCells.index($cell); // var target = findTarget(index); //SHOULD BE SERVER socket.emit('target', index); socket.on('targetResult', function(data){ console.log('data: ' + data); var target = data; var number = $cell.find('input').val(); var complete = false; $cell.empty().removeClass('empty').removeClass('solved').attr('style', null); socket.emit('index', index); if […]

在node.js中发出HTTP请求并发送一个数据体

我目前正在通过Guillermo Rauchs“Smashing Node.Js”书。 我被困在第7章,其中的任务是build立一个客户端/服务器,并通过http连接从客户端发送一个string到服务器。 该string应该从服务器打印。 客户端代码: var http = require('http'), qs = require('querystring'); function send (theName) { http.request({ host: '127.0.0.1' , port: 3000 , url: '/' , method: 'GET' }, function (res) { res.setEncoding('utf-8'); res.on('end', function () { console.log('\n \033[090m request complete!\033[39m'); process.stdout.write('\n your name: '); }) }).end(qs.stringify({ name: theName})); } process.stdout.write('\n your name: '); […]

分离的客户端和服务器的身份验

我已经在客户端创build了angular色2的Web应用程序,并为服务器端创build了具有express框架的NodeJS 。 对于客户端来说,我使用angular-cli生成了在lite-server上运行的项目,所以我的客户端和服务器在两个不同的服务上运行。 我想集成ADFS身份validation。 为了实现身份validation,我使用passport-saml包。 我的服务器端API有一个中间件,需要用户进行身份validation。 当直接到达服务器(没有客户端)时,身份validation过程正常工作。 但是,我无法通过@angular/http访问API 。 我尝试了一个简单的GET请求从服务器(与中间件在终点),结果我得到的身份validation页面没有redirect(我不认为这是核心问题,但实际的实施)。 在服务器和客户端使用单独的服务时,我应该如何正确地实现身份validation?

Node.js和客户端共享相同的脚本

使用Node.js的一个理论好处是可以在客户端和服务器之间共享相同的脚本。 如果客户端不支持JavaScript,那么这将使服务器可以降低相同的function。 然而,Node.js require()方法是自己的。 在你加载的脚本中,你可以添加一些东西到this或者exports ,稍后在获取脚本的对象中可用: var stuff = require('stuff'); stuff.show(); 在stuff.js中: this.show = function() { return 'here is my stuff'; } 所以,在客户端重新使用这个脚本时, .show()方法将被添加到window范围中。 这不是我们想要的,而是我们想将其添加到自定义名称空间。 到目前为止,我唯一的解决scheme就像(在stuff.js中): var ns = typeof exports == 'undefined' ? (function() { return window['stuff'] = {}; })() : exports; ns.show = function() { return 'here is my stuff'; } delete ns; […]

ReactJS服务器端渲染与客户端渲染

我刚开始学习ReactJS,发现它给了你两种呈现页面的方式:服务器端和客户端。 但是,我不明白如何一起使用它。 是build立应用程序的两种不同的方式,还是可以一起使用? 如果我们可以一起使用,那么我们需要在服务器端和客户端复制相同的元素吗? 或者,我们可以在服务器上构build应用程序的静态部分,还是在客户端上构builddynamic部分,而无需连接到已经预渲染的服务器端?