2013-07-29 1 views
3

그래서 파이썬 3의 자바 스크립트 구현 인 brython에서 웹 소켓을 사용하려고합니다. 불행히도, 나는 운이별로 없다.brython에서 websocket JSObject를 어떻게 만들 수 있습니까?

설명서에 따르면 JSObject() 함수를 사용하여 brython에서 JS 객체를 조작 할 수 있지만 웹 소켓에서는 JSObject()를 사용할 수 없습니다. 나는 에코 서버로 테스트하려고한다 : http://www.websocket.org/echo.html (자바 스크립트 코드를 사용할 때 잘 동작한다).

ws = JSObject(WebSocket("ws://echo.websocket.org/"))ws = JSObject(new WebSocket("ws://echo.websocket.org/"))도 아닌 것 같습니다.

brython의 "사이트 미러"다운로드의 일부로 파일 py_websocket.js을 발견했지만 여전히 구현할 수 없습니다.

그냥 구현하지 않거나 brython의 JSObject()을 사용하는 데 중요한 개념이없는 경우 확실하지 않습니다.

답변

4

여기 사용 예는 내장 websocket() 기능 py_websocket에 포함되어, 서버 echo.websocket.org :

<html> 
<head> 
<meta charset="iso-8859-1"> 
<script src="/src/brython.js"></script> 

<script type="text/python3"> 
def on_open(): 
    # Web Socket is connected, send data using send() 
    data = doc["data"].value 
    if data: 
     ws.send(data) 
     alert("Message is sent") 

def on_message(evt): 
    # message received from server 
    alert("Message received : %s" %evt.data) 

def on_close(evt): 
    # websocket is closed 
    alert("Connection is closed") 

ws = None 
def _test(): 
    global ws 
    # open a web socket 
    ws = websocket("wss://echo.websocket.org") 
    # attach functions to web sockets events 
    ws.on_open = on_open 
    ws.on_message = on_message 
    ws.on_close= on_close 

def close_connection(): 
    ws.close() 
</script> 
</head> 
<body onload="brython(1)"> 
<input id="data"> 
<button onclick="_test()">Run WebSocket</button> 
<p><button onclick="close_connection()">Close connection</button> 
</body> 
</html> 

코드는 자명 할 것이다. Brython 사이트는 웹 소켓에 대한 더 많은 문서로 작성해야합니다.

+0

감사합니다.이 질문에 대한 답변이 완벽합니다. builts websocket 함수가 있다는 것을 깨닫지 못했습니다. 설명서에서 찾을 수 없었습니다. – Paul

관련 문제