Javascript websocket:python服务器和客户端js->;没有';行不通
我正试图通过一个python服务器和一个javascript客户端在web上使用websocket。对于python,我使用的是Javascript websocket:python服务器和客户端js->;没有';行不通,javascript,python,websocket,autobahn,Javascript,Python,Websocket,Autobahn,我正试图通过一个python服务器和一个javascript客户端在web上使用websocket。对于python,我使用的是高速公路(http://autobahn.ws/python/)创建websoket服务器。当我使用python客户端(仍然使用autobahn)时,所有这些都可以正常工作。但是当我尝试使用网页客户端时,什么都不起作用 Python(服务器)代码: 这是我的javascript代码: <script> function carre(){ ws = n
高速公路(http://autobahn.ws/python/)
创建websoket服务器。当我使用python客户端(仍然使用autobahn)时,所有这些都可以正常工作。但是当我尝试使用网页客户端时,什么都不起作用
Python(服务器)代码:
这是我的javascript代码:
<script>
function carre(){
ws = new WebSocket("ws://192.168.0.15:9000");
ws.onopen = function(){
console.log("Connection is open...");
// Web Socket is connected, send data using send()
val = document.getElementById("val").value;
var_json = '[2, "2262626262", "big", {"valeur" : ' + val + '}]';
ws.send(var_json);
console.log("json envoyé : " + var_json);
};
ws.onmessage = function (evt){
var received_msg = evt.data;
document.getElementById('carre').value = received_msg;
console.log("JSon reçu : " + received_msg);
};
ws.onclose = function(){
// websocket is closed.
console.log("Connection is closed...");
};
}
</script>
<p><input type="text" id="val" value="6"/><input type="button" OnClick="carre();" value="mettre au carre !"/></p>
<p>resultat du carre : <input type="text" id="carre" /></p>
函数carre(){
ws=newwebsocket(“ws://192.168.0.15:9000”);
ws.onopen=函数(){
日志(“连接已打开…”);
//已连接Web套接字,请使用send()发送数据
val=document.getElementById(“val”).value;
var_json='[2,“2262626262”,“big”,“valeur:'+val+'}];
发送(var_json);
log(“json特使:”+var_json);
};
ws.onmessage=函数(evt){
收到的var_msg=evt.data;
document.getElementById('carre')。value=received\u msg;
log(“JSon reçu:+receivedçu msg”);
};
ws.onclose=function(){
//websocket已关闭。
日志(“连接已关闭…”);
};
}
卡雷结果:
更换
obj_tmp = json.loads(payload.decode('utf8'))
obj = json.loads(obj_tmp)
与
请提供来自浏览器的控制台消息,说明其内容。因为没有足够的调试工作信息来帮助您。乍一看,您似乎将套接字绑定到了
localhost
,但实际上应该只使用端口,而不在服务器端指定任何主机名。您好,我没有任何错误,我只是从我的ws.onclose.onclose事件中得到了“连接已关闭…”。onclose事件提供了对象的详细信息,作为回调中的第一个参数,该对象包含什么?您可以尝试使用source reference@githubhello查看我的演示,我这样做是因为第一个json.loads给了我一个字符串,我无法恢复数据(例如:obj[3][“valeur”])。通过第二个json.load,我的字符串变为json。这个答案并没有解决问题,只是指向代码中与问题无关的区域。如果这确实解决了问题,那么我的命名,并将删除-2小时后(因此限制…)是的,老实说,我测试了它。对我有用。也许OP可以用应用的更改测试它,看看它是否对他/她有效。您好,我尝试过修改,但仍然不起作用:/。
obj_tmp = json.loads(payload.decode('utf8'))
obj = json.loads(obj_tmp)
obj = json.loads(payload)