所以基本上我正在用node.js / express / socket.io制作一个简单的RTS棋盘游戏,以获得学习体验。到目前为止,它确实很顺利,但我几乎在那里纯粹在localhost上工作。将其部署到nodejitsu并加载页面,但服务器未将初始服务器数据发送到客户端。如果(当页面打开,没有刷新时)我重置服务器然后建立连接,整个事情按预期工作,但访问服务器的客户端不这样做。
服务器初始化代码:
var express = require('express');
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);
server.listen(8080);
app.use(express.static(__dirname + '/public'));
app.get('/', function(req, res){
res.sendfile("index.html");
});
app.get('/RTSwords', function(req, res){
//res.sendfile("public\\RTSwords.html");
res.sendfile("RTSwords.html");
});
服务器socket.io代码
// define interactions with client
io.sockets.on('connection', function(socket){
//send them board and first seven tiles.
socket.emit('serverNews', {'game': JSON.stringify(gameBoard), 'newTiles': randomTileString(7)});
客户端socket.io代码
var socket = io.connect('http://MYURLHERE');
.......
socket.on('serverNews', function(data){
update(data);
});
所以是的,总结它在本地工作,在页面加载和服务器重新启动时工作(我只是“jistu部署”)但不是在服务器运行时加载页面。
非常感谢任何帮助!
谢谢,
答案 0 :(得分:2)
在客户端使用io.connect()
,如果您需要更多帮助,请加入IRC上的#nodejitsu,http://webchat.jit.su或irc://chat.freenode.net/#nodejitsu