【问题标题】:Socket.io something like ajaxSocket.io 之类的 ajax
【发布时间】:2017-03-11 04:26:43
【问题描述】:

我正在尝试从网页获取数据,但找不到解决方案。这是套接字服务器端代码:

function get_page(url) {
    //function which return web page data
}
io.sockets.on('connection', function(socket) {
    result=get_page('http://example.com');
    io.sockets.emit('data',result);
});

【问题讨论】:

  • 这是什么意思:“套接字服务器在发出数据之前必须在另一个页面上检查它”?请用更多的文字(可能还有一些代码)解释你想要做什么。
  • 我正在尝试做这样的事情:io.sockets.on('connection', function(socket) { $.ajax({url: "http://example.com", success: function(result){ io.sockets.emit('data',result); }}); });
  • 请编辑您的问题以在问题本身中添加适当的代码和描述。在堆栈溢出时,您有责任写出一个好问题,如果您不这样做,社区将删除它(通过反对票和近距离投票)。此外,发布问题然后仅在 18 小时后返回这里是不合适的。这是一个失败的实时站点,不像您发布并在第二天回来的 BBS。请在此处阅读帮助中心的How do I ask a good question
  • 另外,请明确您的代码是在浏览器中运行,还是在node.js等服务器端环境中运行。您在之前的评论中添加的代码 sn-p 看起来像部分服务器代码和部分客户端代码。很不清楚。请解决您的问题以明确。使用“编辑”链接进行更改。

标签: node.js http socket.io request


【解决方案1】:

如果您只是询问如何实现get_page(),您可以使用http.get(),或者更容易使用request module。使用 request 模块,您的 nodejs 代码可能如下所示:

let request = require('request');

io.sockets.on('connection', function(socket) {
    // upon initial connection, fetch some data and send it to the connecting client
    request('http://example.com', function(err, response, body) {
         if (err) {
             // send some error response here
             socket.emit('data', "example.com not responding - no data available");
         } else {
             // send data to the connecting socket
             socket.emit('data', body);
         }
    });
});

【讨论】:

    猜你喜欢
    • 2015-07-30
    • 2015-12-26
    • 2014-08-29
    • 2013-01-18
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多