1

サーバーからクライアントに 1 秒間隔でメッセージを送信し、メッセージが送信される前に文字列 'send clock' をコンソールに書き込みます。
ただし、クライアントは「時計」メッセージを受信しません。
エコー メッセージは正常に動作しているため、接続の問題ではありません。

1 秒間隔でメッセージを送信するにはどうすればよいですか?

サーバーコード (python):

import threading
import time
import socketio
import eventlet

socket = socketio.Server(async_mode='eventlet')
app = socketio.WSGIApp(socket)

@socket.on('echo')
def echo(sid, message):
    socket.emit('echo', message)

def worker1():
    eventlet.wsgi.server(eventlet.listen(('', 5030)), app)

def worker2():
    while(1):
        print("send clock")
        socket.emit('clock', '1 sec')
        time.sleep(1)

def main():
    t1 = threading.Thread(target=worker1)
    t2 = threading.Thread(target=worker2)
    t1.start()
    t2.start()

if __name__ == '__main__':
    main()

クライアントコード (nodejs):

const io = require("socket.io-client");

socket = io("http://xxx.xxx.xxx.xxx:5030", {
    transports: ["websocket"],
});

socket.emit("echo", "test");

socket.on("echo", (data) => {
    console.log(data);
});

socket.on("clock", (data) => {
    console.log("receive clock");
});

私のサーバー側環境:

python: 3.7.3
python-socketio: 4.5.1
eventlet: 0.25.1

最後までお読みいただきありがとうございました。<3

4

1 に答える 1