Skip to content

Instantly share code, notes, and snippets.

@gourneau
Created February 12, 2010 08:22
Show Gist options
  • Save gourneau/302416 to your computer and use it in GitHub Desktop.
Save gourneau/302416 to your computer and use it in GitHub Desktop.
<html>
<body>
<script>
var myWebSocket = new WebSocket("ws://127.0.0.1:8080/ws/echo");
myWebSocket.onopen = function(evt) {
alert("Connection open ...");
};
myWebSocket.onmessage = function(evt) {
//alert( "Received Message: " + evt.data);
document.getElementById('msg').innerHTML=evt.data;
};
myWebSocket.onclose = function(evt) { alert("Connection closed."); };
</script>
<div id="msg"></div>
<input type="text" id="data">
<input type="button" onclick="myWebSocket.send(document.getElementById('data').value)" value="send">
</body>
</html>
from twisted.internet import reactor
from twisted.web.websocket import WebSocketHandler, WebSocketResource
from twisted.web.server import Site
from twisted.web.static import File
from twisted.internet.task import LoopingCall
from twisted.python import log
import sys
import random
instances = []
class Echohandler(WebSocketHandler):
def frameReceived(self, frame):
self.sendFrame(frame)
def echo_factory(request):
instance = Echohandler(request)
instances.append(instance)
print instance
request.notifyFinish().addCallback(lambda x: instances.remove(instance))
return instance
def do_stuff():
print "stuff"
for instance in instances:
instance.sendFrame(random.randint(1,23423))
def main():
log.startLogging(sys.stdout)
root = File(".")
websocketResource = WebSocketResource()
websocketResource.addHandler("/echo", echo_factory)
root.putChild("ws", websocketResource)
site = Site(root)
l = LoopingCall(do_stuff)
l.start(3)
reactor.listenTCP(8080, site)
reactor.run()
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment