【问题标题】:How can I launch socket-io on a click event?如何在单击事件上启动 socket-io?
【发布时间】:2017-06-06 00:29:34
【问题描述】:

我想这样做,所以当我单击带有类聊天室的元素时,socketio 将连接到烧瓶。 这是服务器端:

@socketio.on('joined')
def handle_connections(data):
    username = session['Username']
    socketio.emit('status', {'msg': username + ' has entered the room.' });

这里是javascript

var socket = io.connect( 'http://' + document.domain + ':' + location.port );
$(document).ready(function(){
    $('.chatRoom').click(function(event){   
            event.preventDefault();

            socket.on( 'connect', function() {
                socket.emit( 'joined', {});
            }); 
    });

    socket.on( 'status', function(data){
            console.log("user connected");
    });
});

没有 jquery 选择器,聊天室可以工作。如何使它与选择器一起使用?

【问题讨论】:

  • 在创建侦听器之前,套接字是否可能发出“连接”事件?尝试在 jquery 事件中移动你的 var socket 声明。
  • 不幸的是,没有运气。

标签: javascript jquery python flask socket.io


【解决方案1】:

您可以发送 ajax 调用请求进行连接并在套接字中处理。 想想下面的代码,sn-p 可以反过来帮助你。

`$(document).on('click', function(event){
    socket.emit('myClick', {id: event.target}); 
 }
 var socket = io.connect('http://localhost'); 
    socket.on('myClick', function (data) { 
    $(data.id).trigger('click'); 
 } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2020-07-07
    • 1970-01-01
    • 2019-10-10
    • 2019-09-20
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多