试图从ZeroMQ Politem获取套接字的实例

时间:2019-01-11 02:56:50

标签: c++ sockets zeromq

我正在研究zmq :: poll的实现,该实现需要一种非常通用,模块化且灵活的方式来检查多个套接字。我正在尝试从zmq :: pollitem_t获取套接字实例。

$(document).ready(function() {


// Flickity
  // --------- /
  var $gallery = $('.gallery').flickity({
    imagesLoaded: true,
    percentPosition: false,
    wrapAround: true,
    pageDots: true
  });
  var flkty = $gallery.data('flickity');

  $gallery.on('click', 'img', function(e) {
     var index = $(e.target).parent().index();

    // Photoswipe functions
    var openPhotoSwipe = function() {
      var pswpElement = document.querySelectorAll('.pswp')[0];

      // build items array

      var items = $.map($(".gallery").find("img"), function(el) {
        return {          
          "src": el.getAttribute('data-src'),
          "w":   el.width,
          "h":   el.height
        }
      });

      var options = {  
        history: false,
        index: index
      };

      var gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
      gallery.init();
    };

    openPhotoSwipe();
  });


});

我得到了错误:

zmq::socket_t zsocX(context, ZMQ_PAIR);
zsocX.bind(addr);
zmq::pollitem_t item = {zsocX, 0, ZMQ_POLLIN, 0};
((zmq::socket_t *)(item.socket))->send(msg);

知道什么是问题吗?据我了解,terminate called after throwing an instance of 'zmq::error_t' what(): Socket operation on non-socket 是指向套接字的zmq::pollitem_t::socket

编辑:内存地址更改。可能使用了C API套接字类型的建议。有解决办法吗?

void *

1 个答案:

答案 0 :(得分:0)

我有类似的问题。我的问题的答案可能会帮助您:

ZeroMQ: How to cast a pollitem_t item, used in Poller, back to a ZeroMQ socket?

简而言之,您可以将zmq::poller_t作为 ZMQ DRAFT API 的一部分。