- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
channel 内
javascripts/channel/message.js
App.message = App.cable.subscriptions.create('MessageChannel', {
received: function(data) {
return $('#messages').append(this.renderMessage(data));
},
renderMessage: function(data) {
return "<p> <b>" + data.message + "</p>";
}
});
Routes
post 'messages/chat_create/:friendship_id/:friend_id' =>'messages#chat_create' , as:"chat_create"
我的聊天 Controller
class MessagesController < ApplicationController
def chat_create
@chat = current_user.messages.new(msg: params[:message][:msg],friend_id:params[:friend_id])
if @chat.save
ActionCable.server.broadcast 'message_channel',message: @chat.msg
redirect_to chat_path(params[:friendship_id])
end
end
messages/chat.html.erb
<div id="messages">
<%=form_for :message, url: chat_create_path(params[:friendship_id],params[:friend_id]) , method: :post do |f|%>
<%=f.text_field :msg %>
<%=f.submit%>
<%end%>
</div>
How can I Improve this Please Provide me solutions
最佳答案
ActionCable IIUC 的 channel 、连接和订阅模型在一个连接上,可以广播多个 channel ,但用户只能看到订阅 channel 上发送的数据。
因此如果你想在两个 friend 之间创建聊天,它类似于创建一个私有(private) channel ,所以在你的 chat_create
方法中你可以试试这个
ActionCable.server.broadcast "message_channel_#{current_user.id}_#{params[:friend_id]}"
基本上你想在私有(private) channel 上广播。显然,要使此功能起作用,您必须将两个用户/ friend 都订阅到同一个私有(private) channel 。
关于ruby-on-rails - 我正在尝试使用 Action 电缆在 rails 5 中的两个 friend 之间创建聊天,但是所有用户都可以查看该消息,无论是否是 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38472018/
Rails 5 引入了 Action Cable,但在 Rails 4 中有实时流媒体。所以我很困惑两者有什么区别,Live Streaming 在 rails 5 中已经死了吗?或 Action C
我有一个很奇怪的问题。最近我尝试使用以下代码在我的应用程序中使用唤醒锁: /** Called when the activity is first created. */ @Override
我在我的应用程序中设置了一个基本的行动电缆供电聊天。我有一个 after_create_commit 回调,它将消息发送到要广播到适当 channel 的作业。当它设置为 perform_now 时它
我在使用 Windows Phone 7.5 的 HTC Titan 上运行一个非常简单的 TCP 客户端时遇到了一些麻烦。 当 USB 数据线连接到手机上时,TCP 客户端工作得很好,但是一旦拔下数
您好,我已经使用 rails 5 实现了 action cable。它在本地工作正常,但在 heroku 上不工作。在 heroku 上,每当我发送任何消息时,它都会发送四条消息,两条重复消息和两条空
在聊天中传递错过的消息的好方法是什么,例如使用 Action Cable?就像当您关闭笔记本电脑并再次打开它时,您并没有重新加载页面,但您可能错过了消息 一种方法是使用 Action Cable 进行
我正在尝试在 websocket 连接上实现授权(rails 5.2.1) 按照 rubyonrails guideline ,我创建了connection.rb如下: # app/channels/
我正在尝试使 kable 表具有反应性并将其导出到 Shiny 的应用程序中。已经尝试在服务器内使用 renderDataTable/renderTable 并将输出函数作为 datatableOut
是否可以将 USB 打印机与 Epson ePos Javascript SDK 一起使用?还是仅适用于以太网/无线型号? 我希望找到一个实用程序将 USB 打印机转换为网络监听打印机,以回收我所有的
我正在使用 ActionCable,并在每 3 秒间隔后从服务器接收 ping(在 ActionCable 库中提到)。我的问题是:如何更改订阅时的 ping 间隔? 有什么想法吗? 最佳答案 扩展@
我正在尝试使用 ISO 9141-2 协议(protocol)从 ECU 读取数据。我使用的电缆是OBD2转USB,使用FT232R芯片。我正在运行的程序是用 C 编写的。 当我向串行端口(ttyUS
我是一名优秀的程序员,十分优秀!