Skip to content

Instantly share code, notes, and snippets.

@creamidea
Last active December 20, 2015 10:19
Show Gist options
  • Save creamidea/6114473 to your computer and use it in GitHub Desktop.
Save creamidea/6114473 to your computer and use it in GitHub Desktop.
用于socket io实验。服务器端使用的是nodejs,框架是express,使用的语法糖衣是:coffeescript
extends layout
block content
h1= title
p Welcome to #{title}
doctype 5
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
script(src="/socket.io/socket.io.js")
script(src="/javascripts/zepto.min.js")
script(src="/javascripts/app.js")
body
block content
# $show = document.getElementById('show')
show = (data) ->
$show = $('body')
console.log $show
msg = data.hello || data.id
$show.append "<p>#{msg}</p>"
return
socket = io.connect 'http://localhost:3000'
socket.on 'news', (data) ->
console.log data
show data
socket.emit 'my other event', {my: 'data'}
return
socket.on 'random', (data) ->
show data
return
###
Module dependencies.
###
express = require("express")
socket_io = require("socket.io")
routes = require("./routes")
user = require("./routes/user")
http = require("http")
path = require("path")
app = express()
app.configure ->
app.set "port", process.env.PORT or 3000
app.set "views", __dirname + "/views"
app.set "view engine", "jade"
app.use express.favicon()
app.use express.logger("dev")
app.use express.bodyParser()
app.use express.methodOverride()
app.use app.router
app.use express.static(path.join(__dirname, "public"))
app.configure "development", ->
app.use express.errorHandler()
app.get "/", routes.index
app.get "/users", user.list
server = http.createServer(app)
server.listen app.get("port"), ->
console.log "Express server listening on port " + app.get("port")
io = socket_io.listen server
io.sockets.on 'connection', (socket) ->
socket.emit 'news', {hello: 'world'}
setInterval ->
socket.emit 'random', { id: Math.random() }
return
, 1000
socket.on 'my other event', (data) ->
console.log(data)
return
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment