我正在尝试复制这个库的功能https://github.com/rnbguy/pysphere/blob/master/misphere.py它通过websockets连接到Mi Sphere 360相机。
重要代码在这里
ms_ip = '192.168.42.1'
ms_tcp_port = 7878
ms_uk_port = 8787
ms_fs_port = 50422
def init(self):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
self.socket.connect((self.ms_ip, self.ms_tcp_port))
self.socket_1 = socket.socket()
self.recv_handle_live = True
self.recv_thread = threading.Thread(target=self.recv_handler)
self.recv_thread.daemon = True
self.session = Session()
self.session.conf = {}
self.session.locks = {}
self.last_send = 0
我正在尝试使用 Node 中的
ws
库来做到这一点
const ip = '192.168.42.1'
const port = '7878'
const url = `ws://${ip}:${port}`
const websocket = new WebSocket(url)
但是我无法连接到相机。 (通过Wifi连接,但websocket从不发送连接消息)
我想知道这是否与 Phython 代码中列出的协议有关。
我在 websocket 文档中看到您可以在连接中定义协议,但我找不到任何有关这些协议是什么以及如何添加它们的文档。
即
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
有人知道如何在 Node websocket 连接中添加这样的东西吗?
无法与普通 TCP 套接字服务器建立 webSocket 连接。
普通 TCP 套接字与 webSocket 不同。 您的 Python 代码似乎正在建立一个普通的 TCP 套接字连接。
您的node.js代码正在尝试建立webSocket连接。 webSocket 连接只能与使用 webSocket 协议(在普通 TCP 套接字之上运行)的 webSocket 服务器建立。
如果您的 Python 代码正常工作,那么您显然只需要建立一个普通的 TCP 套接字连接,您可以在 Net 模块中了解如何操作。
有关普通 TCP 连接和 webSocket 连接之间差异的进一步描述,请参阅以下内容:
要连接到常规 TCP 套接字,请使用
net
包而不是 WebSocket。示例节点等效代码:
const net = require('net');
const port = 7878
const ip = "192.168.42.1"
const socket = net.createConnection(port, ip);
socket.on('connect', () => {
console.log("socket connected");
});
跟踪点击率、转化率和投资回报率等 KPI 对于衡量数字营销的成功至关重要。定期分析这些指标有助于优化营销活动并取得更好的结果。
如需更多见解,请阅读我们关于数字营销绩效指标的博客。