我曾经能够做到这一点,但我正在努力应对0.3的期货。
下面是我从WebSocket获得的一个sink和stream:
let (mut sink, stream) = ws_stream.split();
我创建了一个在异步tokio任务之间通信的无界通道:
let (unbounded_sender, unbounded_receiver) = mpsc::unbounded::<tungstenite::Message>();
这是我被卡住的部分。我生成了一个异步任务,它应该连接无界接收器和接收器;我的想法是通过< code>unbounded_sender发送消息:
tokio::spawn(async {
sink.send_all(&mut unbounded_receiver);
Ok(())
});
对于<code>send_all</code>,错误消息显示:
" expected enum `tungstenite::protocol::message::Message`, found enum `std::result::Result`"
而且
"type mismatch resolving `<futures_channel::mpsc::UnboundedReceiver<tungstenite::protocol::message::Message> as futures_core::stream::Stream>::Item == std::result::Result<_, _>`"
而且
type mismatch resolving `<futures_channel::mpsc::UnboundedReceiver<tungstenite::protocol::message::Message> as futures_core::stream::Stream>::Item == std::result::Result<tungstenite::protocol::message::Message, tungstenite::error::Error>`
查看文档,我可以看到< code>unbounded_receiver实现了< code>TryStream特征,这是< code>send_all所需要的,所以我不确定该怎么做。
Futures现在需要无限通道来实现Futures_ core::stream::TryStream
这可以像将每条消息包装在Ok结果中一样简单地完成:
sink.send_all(
&mut unbounded_receiver.map(Ok::<tungstenite::Message, tungstenite::error::Error>),
);
我正在创建一个不和谐机器人,它每天在某个时间向公会发送消息。我使用为预定的消息,但不确定为机器人编写什么代码来将消息发送到公会的一般频道,如果他们没有一般频道,则发送到带有大多数活动或消息。 由于已被删除,我不确定该如何执行此操作。另外,我不想使用通道id将消息发送到特定的通道,因为我想将此bot公开,以便许多不同的协会可以使用。 它不一定要发送到“默认”频道或包含大多数消息的频道。这些正是我想到
我目前正在使用Java和jda为discord制作一个机器人。我想让机器人向特定的通道发送消息。我该怎么做?
我有一个web应用程序,它通过WebLogic中的JMS与其他Java web应用程序通信。 我读到这样的答案:如何从PHP连接Jms? 我安装了ActiveMQ并尝试使用它。但是在Weblogic中,我们需要“jms_factory”和“queue_name”。我想它使用t3协议。
我正在为我的Discord服务器创建一个bot。 我的服务器中有一个新的用户通道。当新用户加入时,我想向这个频道发送欢迎消息。但是,我不知道如何才能访问新用户的渠道。
我有一个简单的JMS主题侦听器,我希望将它与spring-integration链挂钩。 基本上,当在侦听器中接收到JMS消息时,必须将其推入链的通道中。最终,消息被处理并推送到出站通道适配器中使用。 Spring Integration文档提到了异步网关的使用,但它使用了未来。难道没有一种简单的方法可以把消息放在频道上吗? 如果有一个可以指向的例子,那就太好了。 谢谢 问候 马丁