gpt4 book ai didi

javascript - 使用 JavaScript 将字符串发送到 python websocket

转载 作者:行者123 更新时间:2023-11-30 15:16:08 25 4
gpt4 key购买 nike

我有一个本地运行的 python websocket(下面的代码),我让它无限运行。我主要是从一个例子中复制代码。该示例使用另一个 python 客户端脚本向它发送数据(也在下面)。这简直就像一个魅力,而且非常简单;正是我所需要的,因为我有一些 Python 经验,但对“网络/互联网”一无所知。

现在,我不想使用 python 客户端,而是想通过 javascript 从 html 文档发送消息。是否有任何关于一小段“愚蠢”代码的指导,只是将一条消息(字符串)发送到 python websocketserver?然后,python 脚本将能够使用这些数据执行不同的进程。

Python 服务器:(有效 :))

from socket import *

host = "localhost"
port = 8089
buf = 1024
addr = (host,port)

sock = socket(AF_INET,SOCK_DGRAM)
sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
sock.bind(addr)

print "Websocket active."
print "address:\t"+host+":"+str(port)

while 1:
data,addr = sock.recvfrom(buf)
if not data:
print "Client has exited!"
break
else:
print "\nReceived message '", data,"'"

# Close socket
sock.close()

Python 客户端(可以,但不需要)

from socket import *

host = "localhost"
port = 8089
buf = 1024
addr = (host,port)

sock = socket(AF_INET,SOCK_DGRAM)
def_msg = "===Enter message to send to server===";
print "\n",def_msg

while (1):
data = raw_input('>> ')
if not data:
break
else:
if(sock.sendto(data,addr)):
print "Sending message '",data,"'....."

sock.close()

现在转向 Javascript 客户端..
就不能这么简单吗? ;

var socket = new WebSocket("ws://localhost:8089");
socket.onopen = function () {
alert("alerting you");
socket.send('Pingel');
};

最佳答案

您的 Python 服务器实现了常规的 TCP 服务器,但您的 JS 代码充当 WebSocket 客户端,这是 TCP 之上的实际适当协议(protocol):https://www.rfc-editor.org/rfc/rfc6455

如果你想让两端都能正常通信,你需要运行一个WebSocket服务器,像这样:https://github.com/dpallot/simple-websocket-server

关于javascript - 使用 JavaScript 将字符串发送到 python websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44436830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com