Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript websocket:python服务器和客户端js->;没有';行不通_Javascript_Python_Websocket_Autobahn - Fatal编程技术网

Javascript websocket:python服务器和客户端js->;没有';行不通

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

我正试图通过一个python服务器和一个javascript客户端在web上使用websocket。对于python,我使用的是
高速公路(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)