我是android开发新手,我正试图在我的android应用程序中添加一个聊天室,由rail的新actioncable提供支持。我现在有一个聊天室,使用的是很酷的firebase。但是,我想有一些firebase不支持的附加功能,所以我想把所有东西都移到我的服务器上。问题是我对Android上的WebSocket知之甚少。
下面是rails浏览器端使用的javascript信息。这是没有问题的。

hostname = (url) ->
  parser = document.createElement('a')
  parser.href = url
  parser.href = parser.href
  parser.protocol = parser.protocol.replace("http", "ws")
  parser.href

@App = {}
App.cable = Cable.createConsumer hostname("/")

App.messages = App.cable.subscriptions.create "MessagesChannel",
  received: (data) ->
    messages = $('#messages')
    messages.append(data.message)
    messages.scrollTop(messages.height() + 1000)

最佳答案

actioncable逻辑与其他常见的websocket框架没有太大区别。有许多android websocket库。
尝试,
https://github.com/codebutler/android-websockets
而且,
ActionCable的完整文档尚未准备好。(https://github.com/rails/rails/issues/22673
您应该尝试阅读前端actioncable框架(coffeescript)的源文档。
https://github.com/rails/actioncable/blob/master/lib/assets/javascripts/cable/consumer.coffee
https://github.com/rails/actioncable/blob/master/lib/assets/javascripts/cable/subscription.coffee

07-28 13:21