io socket 读取其它服务器文件,socket.io仅在主服务器上的文件工作,而不是在路径文件...

好,第一次将文件结构:

app

|___app.js

|___models/

|_user.js

|___routes/

|___admin.js

|___public/

|___js/

|___script.js

app.js:

var express = require('express');

var app = express();

var http = require('http').Server(app);

var io = require('socket.io')(http);

http.listen(3000, function (err){

if (err) throw err;

console.log("Server is running");

});

script.js:

var socket = io();

//Next, this tells the browser that is has connected to the socket.io server

socket.on('connect', function() {

console.log('Connected to socket.io server!');

});

socket.on('message', function(message){

console.log('New message: ');

console.log(message.text);

});

var $newUsername = $('#Username');

$newUsername.on('blur', function(event){

socket.emit('message', {

text: $newUsername.val()

});

});

因此,在注册页面上,如果用户在数据库中已经输入了'用户名',它将console.log'该用户已经存在'。至少,这是主意。

我还需要在服务器端添加sockets.io代码。我试图把它放在这儿:

admin.js:

var router = require('express').Router();

var User = require('../models/user');

io.on('connection', function(socket) {

console.log('User connected via socket.io!');

socket.on('message', function(message) {

Username.findOne({username: message.text}, function (err, existingUsername) {

if (existingUsername) {

console.log('This user already exists: ' + message.text);

}

});

});

});

所以,这表示,在admin.js的sockets.io代码将无法工作,因为它无法访问io功能。我想知道我该如何解决这个问题。

为了增加这样的:sockets.io代码我在admin.js文件将正常工作,如果我把它放在我的app.js文件。

+1

为什么它不能在你的其他文件中工作? socket.io并不关心页面是什么路线。如果您希望在您的所有文件中都有可用的用户名,请将其设置为可在客户端页面或服务器上随时获取的cookie。 –

+0

当你说路线文件。路由文件/主页或注册表单页面。 ? –

+0

你是否担心你不想在这个端口上永久监听只用于名称验证?所以你想踢开始听路由文件,该路由文件呈现注册页面? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值