android socket.IO客户端未连接到python socket.IO服务器

时间:2018-06-10 17:43:57

标签: android python socket.io socket.io-1.0

我有一个使用socket.IO的简单python服务器

这是服务器代码:

from flask import Flask, request
from flask_socketio import SocketIO, send

app = Flask(__name__)
socketio = SocketIO(app)

@socketio.on('message')
def handleMessage(msg):
    print('Message: ' + msg)
    send(msg, broadcast=True)

@socketio.on('connect')
def connect():
    print('New Client: ' + request.sid)
    socketio.emit('message', "koko", room=request.sid)

if __name__ == '__main__':
    socketio.run(app)

我有一个简单的应用程序需要连接到服务器,我在互联网上搜索如何这样做,这就是我做的:

import com.github.nkzawa.socketio.client.IO
import com.github.nkzawa.socketio.client.Socket

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.chat_show)

        var socket = IO.socket("http://192.168.1.108:5000")
        socket.connect()
}

我添加了:

implementation 'com.github.nkzawa:socket.io-client:0.3.0'

和:

<uses-permission android:name="android.permission.INTERNET"/>

我知道当你在android中使用套接字时,你需要运行asyncTask或线程,但我的程序甚至都不会失败!它会忽略这些代码行的存在。

我忘记了什么吗?

我知道服务器有效,因为我有一个简单的javascript客户端来检查它:

<html>
<head>
<title>Chat Room</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.8/socket.io.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {

    var socket = io.connect('http://127.0.0.1:5000');

    socket.on('message', function(msg) {
        $("#messages").append('<li>'+msg+'</li>');
        console.log('Received message');
    });

    $('#sendbutton').on('click', function() {
        socket.send($('#myMessage').val());
        $('#myMessage').val('');
    });

});
</script>
<ul id="messages"></ul>
<input type="text" id="myMessage">
<button id="sendbutton">Send</button>
</body>
</html>

0 个答案:

没有答案