サーバーからクライアントに 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