Adonis.js WebSocket Room无法获得套接字

时间:2017-04-25 17:10:30

标签: adonis.js

我从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 %}

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

感谢的。

贝鲁

1 个答案:

答案 0 :(得分:0)

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

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

Payload是您发送的自定义数据:

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

希望它有所帮助。 如果您需要更多说明,请与我们联系。