【问题标题】:Adonis.js WebSocket Room doen't get socketAdonisjs WebSocket Room 没有得到套接字
【发布时间】:2017-04-25 17:10:29
【问题描述】:

我从 Adonis.js 框架开始,我不明白 websocket 服务的工作原理。我按照有关此的文档,并尝试腾出一个房间。

我让你看看:

// app/Ws/Controllers/ChatController.js
'use strict'

class ChatController {

  constructor (socket, request) {
    this.socket = socket
    this.request = request
  }

  * joinRoom (room) {
    console.log(this.socket)   <---- get undefined
  }
}

module.exports = ChatController


// resources/views/welcome.njk

{% extends 'master' %}

{% block content %}
  <script src="https://unpkg.com/adonis-websocket-
client@1.0.2/dist/ws.js" charset="utf-8"></script>
  <script type="text/javascript">
    const io = ws('', {})
    const client = io.channel('chat').connect(console.log)
    client.joinRoom('index', {}, console.log)
  </script>
{% endblock %}

当我加载欢迎页面时,我在控制台中得到“未定义”。我不明白我的错误。

谢谢。

贝鲁

【问题讨论】:

    标签: adonis.js


    【解决方案1】:

    希望我没有迟到。 将 adonis-websocket 更新为 1.0.4 然后在控制器中修改:

    * joinRoom (room, payload, socket) {
      console.log(socket)
    }
    

    有效负载是您作为自定义数据发送的内容:

    client.joinRoom('index', {data}, console.log)
    

    希望对您有所帮助。 如果您需要更多说明,请告诉我。

    【讨论】:

      猜你喜欢
      • 2015-07-13
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      相关资源
      最近更新 更多