# -*- coding:utf-8 -*-
import websocket
import requests
import re
import json
import time
def on_message(ws, message): # 服务器有数据更新时,主动推送过来的数据
# message = json.loads(message)
print(message)
def on_error(ws, error): # 程序报错时,就会触发 on_error 事件
# print(error)
time.sleep(10) # 延时十秒,预防假死
Start() # 重连
def on_close(ws):
print("Connection closed ……")
def on_open(ws): # 连接到服务器之后就会触发 on_open 事件,这里用于 send 数据
# print(req)
ws.send(1)
def Start():
# websocket.enableTrace(True) # 调试开启和关闭
ws = websocket.WebSocketApp("ws://192.168.31.100:9393", on_message=on_message, on_error=on_error, on_close=on_close)
ws.on_open = on_open
ws.run_forever(ping_timeout=30)
if __name__ == "__main__":
Start()
我的 websocket 客户端代码是酱紫的;
那么问题来了,比如是有一另外一个 py 叫 B;
我如何在 B 里面调用 A 的 websocket 发送内容?
ws.send('字符串') 是发送内容;
我如何在外部进行调用 然后发送呢?
因为我只想在我需要的时候主动发送某些内容给服务器;
而不是一直等待 on_message 的响应后才发送;
1
E520 2019-01-10 11:23:07 +08:00
# -*- coding:utf-8 -*-
import websocket import requests import re import json import time,threading def on_message(ws, message): # 服务器有数据更新时,主动推送过来的数据 # message = json.loads(message) print(message) def on_error(ws, error): # 程序报错时,就会触发 on_error 事件 # print(error) time.sleep(10) # 延时十秒,预防假死 Start() # 重连 def on_close(ws): print("Connection closed ……") def on_open(ws): # 连接到服务器之后就会触发 on_open 事件,这里用于 send 数据 # print(req) ws.send(1) def get_msg(): return '内容' def send_msg(ws): msg=get_msg() ws.send(msg) def Start(): # websocket.enableTrace(True) # 调试开启和关闭 ws = websocket.WebSocketApp("ws://192.168.31.100:9393", on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open threading.Thread(target=send_msg,args=(ws,)).start() ws.run_forever(ping_timeout=30) if __name__ == "__main__": Start() |
2
E520 2019-01-10 11:23:31 +08:00 1
加一个线程 传递 Ws 对象即可
|
3
smallgoogle OP |
4
smallgoogle OP @E520 不对。好像是可以的。好像是哪里有点问题。说不上来。
|
5
smallgoogle OP @E520 这加个线程,只是多了一个函数方法,可是如何调用这个方法呢?
|
6
smallgoogle OP @E520 比如怎么调用 send_msg('字符串内容')
|
7
smallgoogle OP @E520 前辈你别消失了啊。。
|