首先,让我设置舞台:我是新用户,这是我的第一篇文章。我通常使用Ruby来解决我遇到的唯一问题类型的简单问题。 我遇到并发出了99%的人告诉我需要使用JavaScript来解决它的问题。当然我不懂JavaScript,今天我花了8个多小时阅读有关初学者的JavaScript教程。在这个长序言之后,让我告诉你我需要做什么,也许Stackoverflow社区可以推荐一些工具或指向正确的来源。
我有一台UNIX服务器生成一个24x7的日志,其中包含每秒或更快更新的信息。每天晚上我们都会剪切日志并开始新的日志。 我使用Ruby流行的GUI工具包之一在Ruby中编写了一个简单的应用程序,并且它没有问题。在任何桌面上,您都可以运行以下应用程序:
上述方法的问题在于,为了让任何人都能使用它,我需要安装Ruby及其所有要求,包括人员桌面上的工具包。
我想:
有人能指出我需要使用的正确技术,也许是一些示例或代码片段吗?
答案 0 :(得分:2)
XMLHttpRequest()对象允许您创建对服务器的HTTP请求。浏览器不需要刷新,但客户端需要重复询问服务器是否有新内容,因此无论如何网络流量都很高。
WebSockets 更适合您。使用node.js,您可以创建websocket服务器...
服务器代码
var http = require('http');
var WebsocketServer = require("websocket").server;
var httpServer = http.createServer(function(){});
httpServer.listen(/*port*/ 9822, function(){});
var wsServer = new WebsocketServer({httpServer: httpServer});
......并与客户沟通
wsServer.on('request', function(request) {
var connection = request.accept(null, request.origin);
// respond to client request
connection.on('message', function(message) {
connection.send(data);
});
// or create an event on the client without its request
if(something) connection.send(data);
});
客户端可以使用websockets连接服务器
客户端代码
ws = new WebSocket('ws://' + server + ':9882');
// create request
ws.send(data);
// handle request
ws.onmessage = function(message) { ... }
请参阅websockets上的this tutorial。
答案 1 :(得分:1)
您可以尝试使用AJAX和jQuery
答案 2 :(得分:1)
我建议您使用WebSockets。
然后,当实际存在要推送的数据时,服务器可以推送数据。无需从客户端轮询(节省带宽和更新是实时的)。它适用于升级到套接字连接的标准HTTP连接(以及HTTPS)。
正如您所说,您不熟悉Javascript(在任何一种情况下都是必须的),您可以使用许多使用WebSocket的包装程序库中的一个来缓解“get started”曲线(包括WebSocket是的回退模式)浏览器不支持。
我建议你不管怎样阅读specifications以了解发生了什么。
一些建议:
http://socket.io/
http://xsockets.net/
我个人更喜欢SignalR,但这需要启用.Net的服务器(但compatible with Mono on Linux}。