首页 文章

使用PyWebSocket连接websocket中的两个客户端

提问于
浏览
0

我是使用pywebsocket的websocket的新手,基本上试图用websocket和pywebsocket创建一个简单的聊天应用程序 . 到现在为止,我完成了以下脚本

if ("WebSocket" in window)
  {
     //alert("WebSocket is supported by your Browser!");
     // Let us open a web socket
     var ws = new WebSocket("ws://192.168.1.3:9998/echo");
     ws.onopen = function()
     {
        // Web Socket is connected, send data using send()
        console.log("Channel opened");
        //ws.send("Message to send");
        //alert("Message is sent...");
        //console.log("Message is sent...");
     };
     ws.onmessage = function (evt) 
     { 
        var received_msg = evt.data;
        //alert("Message is received..."+received_msg);
        console.log("message : "+received_msg);
     };
     ws.onclose = function()
     { 
        // websocket is closed.
        //alert("Connection is closed...");
        console.log("connection closed");
     };
  }
  else
  {
     // The browser doesn't support WebSocket
     alert("WebSocket NOT supported by your Browser!");
  }

  function sendmessage(){
    msg=document.getElementById("chat").value;
    console.log(msg);
    ws.send(msg);
    document.getElementById("chat").value="";
  }

现在问题是发送的消息是 echoed 到系统本身,如果另一个客户端连接到同一个通道,它的消息回显给它自己,它们被发送到另一个连接到同一个通道的客户端 .

pywebsocket初始化如下python standalone.py -p 9998 -w ../example/

那么如何连接两个系统并允许聊天 . 提前致谢

1 回答

  • 0

    不确定,但如果你想将任何收到的消息(由任何连接的客户端发送)广播到所有其他当前连接的客户端,那不是“回声”......而是“广播” .

    这是example using AutobahnPython .

    披露:我是Autobahn的原作者,也为Tavendo工作 .

相关问题