Skip to content

Commit

Permalink
update devsocket
Browse files Browse the repository at this point in the history
  • Loading branch information
fafhrd91 committed Jan 20, 2012
1 parent bcbf250 commit 18270ce
Show file tree
Hide file tree
Showing 9 changed files with 120 additions and 146 deletions.
4 changes: 2 additions & 2 deletions ptah.ini
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[app:ptah]
use = egg:devapp
reload_templates = true
pyramid.includes = pyramid_debugtoolbar ptah ptah_crowd devapp pyramid_beaker
#pyramid.includes = ptah ptah_crowd devapp pyramid_beaker
#pyramid.includes = pyramid_debugtoolbar ptah ptah_crowd devapp pyramid_beaker
pyramid.includes = ptah ptah_crowd devapp pyramid_beaker

# auth
ptah.auth = true
Expand Down
51 changes: 19 additions & 32 deletions sockjs.cfg
Original file line number Diff line number Diff line change
@@ -1,49 +1,36 @@
[buildout]
unzip = true
extensions =
mr.developer
lovely.buildouthttp
buildout.dumppickedversions

include-site-packages = false
auto-checkout = *

eggs-directory = eggs
download-cache = downloads
extends = base.cfg
extensions +=
mr.developer
auto-checkout = *

parts =
dirs
scripts
parts +=
omelette
sockjs-server

index = http://pypi.python.org/simple

eggs =
pyramid_beaker

versions = versions

[dirs]
recipe = z3c.recipe.mkdir
paths = var
downloads

[scripts]
recipe = zc.recipe.egg:scripts
eggs = ${buildout:eggs}
gevent_sockjs
pyramid

[versions]
zope.interface = 3.8.0
eggs +=
devsocket
pyramid_debugtoolbar

[sources]
ptah = git git@github.com:ptahproject/ptah.git
ptah_crowd = git git@github.com:ptahproject/ptah_crowd.git

gevent = hg https://bitbucket.org/denis/gevent
gevent_sockjs = git git@github.com:fafhrd91/sockjs-gevent.git
gevent_websocket = hg https://bitbucket.org/Jeffrey/gevent-websocket branch=develop

devapp = fs devapp
devsocket = fs devsocket

[omelette]
recipe = collective.recipe.omelette
eggs = ${buildout:eggs}
packages = ${buildout:directory} ./
location = ${buildout:directory}/source

[sockjs-server]
recipe = zc.recipe.egg:scripts
eggs = devsocket
58 changes: 58 additions & 0 deletions sockjs.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
[app:ptah]
use = egg:devsocket
reload_templates = true
#pyramid.includes = pyramid_debugtoolbar pyramid_beaker
#pyramid.includes = ptah ptah_crowd devapp
pyramid.includes = pyramid_beaker

# session settings
session.type = file
session.data_dir = %(here)s/var/sessions/data
session.lock_dir = %(here)s/var/sessions/lock
session.key = ptahsession
session.secret = ptahsecret

# mailer settings
mail.host = localhost
mail.port = 25
mail.queue_path = None
mail.default_sender = Ptah <info@ptahproject.org>
mail.debug = true

# sqlalchemy
sqlalchemy.url = sqlite:///%(here)s/var/db.sqlite
#sqlalchemy.url = postgresql+psycopg2://fafhrd@localhost:5433/forum

[pipeline:main]
pipeline =
ptah

[server:main]
use = egg:gevent_sockjs#paster
host = 0.0.0.0
port = 9090
threadpool_workers = 1
threadpool_spawn_if_under = 1

# Begin logging configuration
[loggers]
keys = root

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = console

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s] %(message)s
31 changes: 1 addition & 30 deletions src/devsocket/devsocket/__init__.py
Original file line number Diff line number Diff line change
@@ -1,30 +1 @@
# devapp

from ptah import cms, view


view.layout.register('page', cms.ApplicationRoot, layer='devapp',
renderer='templates/layoutpage.pt')


view.static('socketio', 'devsocket:socketio/')
view.library(
'socket.io',
path="socket.io.js",
resource="socketio",
type="js",
require='jquery',
)
view.library(
'sticky.min.css',
path="sticky.min.css",
resource="socketio",
type="css",
)
view.library(
'sticky.min.js',
path="sticky.min.js",
resource="socketio",
type="js",
require='jquery',
)
# devsocket
22 changes: 22 additions & 0 deletions src/devsocket/devsocket/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from pyramid.config import Configurator
from pyramid.session import UnencryptedCookieSessionFactoryConfig

session_factory = UnencryptedCookieSessionFactoryConfig('secret')


def main(global_settings, **settings):
config = Configurator(settings=settings,)
#session_factory = session_factory)
config.include('ptah')

config.add_route('views.home', '/')
config.add_route('views.broadcast', '/broadcast')
config.scan('devsocket.views')

# init ptah settings
config.ptah_init_settings()

# enable ptah manage
config.ptah_init_manage(managers=['*'])

return config.make_wsgi_app()
44 changes: 0 additions & 44 deletions src/devsocket/devsocket/server.py

This file was deleted.

27 changes: 11 additions & 16 deletions src/devsocket/devsocket/templates/home.pt
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,21 @@
<body>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script src="http://cdn.socket.io/stable/socket.io.js"></script>
<script src="http://cdn.sockjs.org/sockjs-0.2.min.js"></script>
<script>
var socket = new io.Socket(null, {port: 9090,
rememberTransport: false});
var sock = new SockJS('http://localhost:9090/__sockjs__');

socket.on('connect', function() {
socket.send({type: 'connect'});
});
sock.onopen = function() {
console.log('open');
};

socket.on('message', function(obj) {
alert(obj.message);
});
sock.onmessage = function(obj) {
console.log(obj);
};

socket.on('error', function(obj) {
});

socket.on('disconnect', function() {
});

socket.connect();
sock.onclose = function() {
console.log('close');
};
</script>
</body>
</html>
15 changes: 3 additions & 12 deletions src/devsocket/devsocket/views.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import gevent

from pyramid.renderers import render_to_response
from pyramid.response import Response
from pyramid.view import view_config
from pyramid_socketio.io import SocketIOContext
from pyramid_socketio.io import socketio_manage
from pyramid.httpexceptions import HTTPNotFound
from pyramid.renderers import render_to_response


_messages = []
Expand All @@ -24,7 +22,7 @@ def broadcast_view(request):
_messages.append(message)


class ConnectIOContext(SocketIOContext):
class ConnectJSContext(object): #SockJSContext):

def msg_connect(self, msg):
print "connect message received", msg
Expand All @@ -37,10 +35,3 @@ def broadcast():
index += 1
gevent.sleep(0.5)
self.spawn(broadcast)


@view_config(route_name="views.socket_io")
def socketio_service(request):
print "socket.io request running"
return_value = socketio_manage(ConnectIOContext(request))
return Response(return_value)
14 changes: 4 additions & 10 deletions src/devsocket/setup.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
from setuptools import find_packages
from setuptools import setup
from setuptools import setup, find_packages


requires = [
'pyramid',
'pyramid_socketio',
'gevent',
'gevent-socketio',
'gevent-websocket',
'greenlet',
'gevent-sockjs',
]


Expand All @@ -26,9 +22,7 @@
zip_safe=False,
install_requires = requires,
entry_points = {
'ptah': ['package = devapp'],
'console_scripts': [
'socket-server = devsocket.server:main',
],
'paste.app_factory': [
'main = devsocket.app:main'],
},
)

0 comments on commit 18270ce

Please sign in to comment.