我有以下服務器端代碼:沒有的NodeJS工作簡單socket.io例如
var express = require('express')
, http = require('http')
, routes = require('./routes')
, io = require('socket.io')
, factory = require('./serverfactory.js');
var app = express();
var server = app.listen(3000);
io = io.listen(server);
io.sockets.on('connection',function(socket){
console.log('new user');
socket.emit('hail','mysimplemsg');
socket.on('customevent',function(msg){
console.log(msg);
});
});
//var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', routes.index);
這是客戶端:
var socket = io.connect('http://localhost:3000');
socket.emit('customevent','work');
socket.on('hail',function(msg){
console.log(msg);
});
我期待我的git console
輸出new user
(它確實)然後它應該輸出work
(它沒有),然後我在我的瀏覽器控制檯中得到味精mysimplemsg
(它沒有)。
怎麼回事爲什麼服務器端的事件是customevent
沒有被調用,爲什麼客戶端的事件是hail
沒有被調用?
查看下面的@ nFreeze的答案,並查看http://socket.io/#how-to-use更多示例 –