Ionic、jQuery和websockets

Ionic、jQuery和websockets,jquery,websocket,ionic3,Jquery,Websocket,Ionic3,我已经启动并运行了一个web应用程序。这是一个游戏平台,其中1到5个玩家点击某个东西,数据被发送到服务器,服务器将数据发送回所有客户端。然后,客户机通过jQuery更新其DOM 现在我正在为这个平台开发一个移动应用程序。该web应用程序在客户端使用HTML5、CSS3和jQuery,在服务器端使用cakePHP和Ratchet for WebSocket。对于移动应用程序,我使用的是Ionic 因为我不想重写node.js的websocket的所有代码,所以我没有在客户端使用socket.io。

我已经启动并运行了一个web应用程序。这是一个游戏平台,其中1到5个玩家点击某个东西,数据被发送到服务器,服务器将数据发送回所有客户端。然后,客户机通过jQuery更新其DOM

现在我正在为这个平台开发一个移动应用程序。该web应用程序在客户端使用HTML5、CSS3和jQuery,在服务器端使用cakePHP和Ratchet for WebSocket。对于移动应用程序,我使用的是Ionic

因为我不想重写node.js的websocket的所有代码,所以我没有在客户端使用socket.io。相反,我保留服务器端websocket代码,并使用web应用程序客户端的jQuery代码。在Ionic中,我将其粘贴到ngAfterViewInit()函数中。一切都正常,除了我希望能够传递变量。例如:

ngAfterViewInit()

$(document).ready(function(){

    var host = "quiztime.live"; var port = 8010;
    var socket = 'wss://' + host + '/wss' + port + '/' + port;
    var conn = new WebSocket(socket);

    conn.onopen = function(e) {
        var PLAY = 7;
        var msg = { 'type':PLAY, 'user_id': this.user_id, 'game_id': this.game_id };
        conn.send(JSON.stringify(msg));
    }

});
这会给出一个错误,因为this.user_id和this.game_id当然没有定义,因为在conn.onopen()的上下文中,“this”现在指的是websocket,而不是Ionic类

如何在ngAfterViewInit()函数中使用jQuery中Ionic类中的变量


或者有没有更好的方法在爱奥尼亚实现这个项目?

我对在这种情况下使用jQuery表示怀疑,但您可能希望使用ES6表示法来获得最高的
参考:

ngAfterViewInit() {
    $(document).ready(() => {

        var host = "quiztime.live"; var port = 8010;
        var socket = 'wss://' + host + '/wss' + port + '/' + port;
        var conn = new WebSocket(socket);

        conn.onopen = (e) => {
            var PLAY = 7;
            var msg = { 'type':PLAY, 'user_id': this.user_id, 'game_id': this.game_id };
            conn.send(JSON.stringify(msg));
        }
   });
}

我不明白为什么再次使用jquery?谢谢你的回答。我使用jquery的原因是:每当有东西通过websocket发送时,每个用户都有很多DOM处理,我想,为什么不使用在web应用程序中运行良好的(jquery)代码呢?但也许有更好的解决办法。我是爱奥尼亚的新手。您是否提出了另一种方法?主要取决于您当前的经验和项目设置来确定jQuery的需求。在Angular(2+)和Ionic之前,我经常使用jQuery,但从那以后,我几乎不再使用它了。Angular提供了另一种访问DOM元素的方法。我建议你应该学习一些关于Ionic和Angular的教程,看看在这个项目和你未来的项目中是否还需要jQuery。听起来你更喜欢Angular方法而不是jQuery。你能推荐一些关于角度DOM处理的好教程吗?是爱奥尼亚内部的一种方法(Josh Morony)。我建议大家多看看Josh的教程。查看如何使用
@ViewChild
等。非常感谢您的帮助!