Socket IO入门-如何获得响应



所以我想使用Flask Socket IO向所有客户端发送消息,但在javascript方面我不确定如何调用获取消息

from flask import Flask, render_template
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = 'hidden'
socketio = SocketIO(app)
@app.route('/')
def sessions():
return render_template('index.html')
@socketio.on('test')
def test():
print('test my event')
socketio.emit('test response')
if __name__ == '__main__':
socketio.run(app, debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.0.4/socket.io.js" integrity="sha512-aMGMvNYu8Ue4G+fHa359jcPb1u+ytAF+P2SCb+PxrjCdO3n3ZTxJ30zuH39rimUggmTwmh2u7wvQsDTHESnmfQ==" crossorigin="anonymous"></script>
<script type="text/javascript">
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('connect', function() {
socket.emit('test') }
</script>

</body>
</html>

基本上,我如何从socketio.emit获得响应("测试响应"(?

在脚本标记中添加另一个socket.on((。

<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.0.4/socket.io.js" integrity="sha512-aMGMvNYu8Ue4G+fHa359jcPb1u+ytAF+P2SCb+PxrjCdO3n3ZTxJ30zuH39rimUggmTwmh2u7wvQsDTHESnmfQ==" crossorigin="anonymous"></script>
<script type="text/javascript">
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('connect', function() {
socket.emit('test') }
socket.on("test response", (response) => {
console.log(response);
});
</script>

</body>
</html>

socket.io调用不一定是顺序的,因此您有尽可能多的socket.on,甚至根据套接字上的内容,相应的函数也会被触发。

希望它能有所帮助!如果你还有任何疑问,请在评论中打我。

--编辑--

指向文档的指针以获取有关此方面的确切信息。

https://socket.io/docs/v3/client-api/index.html#socket-在eventName回调上

最新更新