小编Mic*_*tak的帖子

Flask + RabbitMQ + SocketIO - 转发消息

我在通过SocketIO从RabbitMQ向用户发送消息时遇到问题.

我有与SocketIO集成的 Flask应用程序.目前的用户流程似乎如此这个

问题是我无法设置RabbitMQ监听器,它通过SocketIO将消息转发给浏览器.每次我得到不同的错误.主要是连接关闭,或者我在应用程序上下文之外工作.

我尝试了很多方法,这是我的最后一个方法.

# callback 
def mq_listen(uid):
    rabbit = RabbitMQ()
    def cb(ch, method, properties, body, mq=rabbit):
        to_return = [0]  # mutable
        message = Message.load(body)
        to_return[0] = message.get_message()

        emit('report_part', {"data": to_return[0]})

    rabbit.listen('results', callback=cb, id=uid)

# this is the page, which user reach
@blueprint.route('/report_result/<uid>', methods=['GET'])
def report_result(uid):

    thread = threading.Thread(target=mq_listen, args=(uid,))
    thread.start()

     return render_template("property/report_result.html", socket_id=uid)
Run Code Online (Sandbox Code Playgroud)

其中rabbit.listen方法是抽象的:

def listen(self, queue_name, callback=None, id=None):
    if callback is not None:
        callback_function = callback
    else:
        callback_function = self.__callback
    if id is None:
        self.channel.queue_declare(queue=queue_name, durable=True) …
Run Code Online (Sandbox Code Playgroud)

python rabbitmq flask socket.io

19
推荐指数
1
解决办法
2476
查看次数

UnsupportedOperationException:AdapterView不支持addView(View,LayoutParams)

我正在尝试创建一个简单的Android应用程序,我收到此错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.twista.shopinglist/com.twista.shopinglist.ItemDetail}: java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
Run Code Online (Sandbox Code Playgroud)

我尝试谷歌它并通过这里的一些答案修复,但不成功它没有解决:(.

我有一个MainActivityListViewonCreate()我打电话

 public class MainActivity extends Activity {

 ....

 @Override
 protected void onCreate(Bundle savedInstanceState) {

    ...

    final ListView listView = (ListView) findViewById(R.id.overListView);

    List<Item> values = dataSource.getItems();

    final ArrayAdapter<Item> adapter = new ArrayAdapter<Item>(this,
            android.R.layout.simple_list_item_1, values);
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Item i = adapter.getItem(position);
            Intent intent = new Intent(MainActivity.this, …
Run Code Online (Sandbox Code Playgroud)

android list view android-activity android-layoutparams

1
推荐指数
1
解决办法
1万
查看次数