Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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 将python客户端服务器转换为websocket_Javascript_Python_Html_Websocket - Fatal编程技术网

Javascript 将python客户端服务器转换为websocket

Javascript 将python客户端服务器转换为websocket,javascript,python,html,websocket,Javascript,Python,Html,Websocket,我创建了一个简单的echo服务器,并将其用于一个简单的web服务器示例 到目前为止,我拥有以下服务器: Server.py from socket import * import threading import thread def handler(clientsock,addr): while 1: data = clientsock.recv(BUFSIZ) if not data: break msg =

我创建了一个简单的echo服务器,并将其用于一个简单的web服务器示例

到目前为止,我拥有以下服务器:

Server.py

from socket import *
import threading
import thread

def handler(clientsock,addr):
    while 1:
        data = clientsock.recv(BUFSIZ)
        if not data:
            break
        msg = 'echoed:... ' + data
        clientsock.send(msg)
     clientsock.close()

if __name__=='__main__':
    HOST = 'localhost'
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    serversock = socket(AF_INET, SOCK_STREAM)
    serversock.bind(ADDR)
    serversock.listen(2)

    while 1:
        print 'waiting for connection...'
        clientsock, addr = serversock.accept()
        print '...connected from:', addr
        thread.start_new_thread(handler, (clientsock, addr))
我想使用
websockify
,我发现可以使用以下方法包装现有程序:

/websocify 2023——程序参数

如何使用上述命令在上一个服务器上运行当server.py在另一台机器上运行时,我是否可以在一台机器上运行
websocify
?如果有的话。如何修改上述命令?

有人能提供一个简单的HTML5示例来告诉我
client.html
应该是什么样子吗?请记住,我希望能够在没有原生websocket支持的浏览器上使用该示例。我认为websockify可以使用
WebSocket js
实现这一点


它们声明:
它对二进制数据有透明的支持,并且如果浏览器本机不支持Websocket,它会自动回退到web套接字js Flash Websocket shim/polyfill

要与websockify交互,我建议您的客户端HTML/Javascript使用include/websock.js提供的库。与标准WebSocket有点不同

我刚刚在websockify存储库中插入了一个非常有用的代码

要在同一系统上包装server.py,您可以如下运行websockify:

./websockify --web ./ 21567 -- server.py
加载位于“”的简单客户端http://localhost:21567/tests/simple.html". 输入“ws://localhost:21567”作为websocket URI并点击connect。请注意,wrap模式使用重新绑定。因此,您必须构建一个将侦听端口移开的模式,以便websockify可以为您插入

您也可以在同一系统上单独运行websockify:

./server.py
./websockify --web ./ 6080 localhost:21567
在这种情况下,您将浏览到“http://localhost:6080/tests/simple.html并使用“ws://localhost:6080”作为要连接到的URI

如果您希望在不同于server.py运行机器的机器上运行websockify,则需要将server.py更改为在公共界面上侦听,而不仅仅是“localhost”。一旦进行了更改,如果server.py在192.168.1.7上运行,则可以在192.168.1.5上运行websockify,如下所示:

./websockify --web ./ 21567 -- server.py
在192.168.1.7 launch server.py上:

./server.py
在192.168.1.5上启动websockify并将其指向另一个系统上的server.py:

./websockify --web ./ 6080 192.168.1.7:21567
然后你会浏览到“http://192.168.1.5:6080/tests/simple.html并使用URI“ws://192.168.1.5:6080”


或者,如果您只是希望您的服务器是WebSocket服务器,那么您可以只使用WebSocket.py库而不使用完整的websockify功能,直接创建您的服务器。请参阅websockify附带的示例,它是一个简单的WebSocket echo服务器。

再次感谢您提供了详尽的答案。你能澄清一下吗?如果我在
server1
上运行
server.py
,在
server2
上运行
websocify
,我还需要重新绑定
吗?我不这么认为。不,你只需要重新绑定。所以如果你在包装模式下使用它。另外,我忘了提到,如果您使用include/websock.js,它将为没有原生WebSocket支持的浏览器引入websocketjsflash仿真。您能提出一些建议吗?
8:10.16.5.135:发送闪存策略响应9:10.16.5.135:纯非SSL(ws://)WebSocket连接9:10.16.5.135:Version hixie-76,base64:“True”
@salamis,该输出指示连接已打开。你能打开一个websockify以便我们能正确地跟踪它吗。此外,在此期间javascript控制台的任何输出都会很有帮助。