为node.js应用程序

时间:2017-06-08 09:15:22

标签: javascript node.js sockets websocket socket.io

我有一些关于为我的node.js应用程序配置socket.io的问题。

  1. 当需要var socket = require('socket.io')( /* HERE */ )时,是否需要输入我的服务器侦听/* HERE */所在位置的端口?

  2. 在上面一行的下方,我有另一个require函数,用于包含一些常量和函数的.js文件(见下文)。当我尝试引用' socket'在该文件中,它说它未定义。但是由于这一行低于上面看到的socket.io中间件的需求行,为什么它会说' undefined'?

    const numbers = '1234'
    function asd(req,res,next) {
      socket.emit('a')
    }
    
    module.exports = {
      asd
    }
    
  3. 为了配置客户端socket.io,我添加了这一行:

    var socket = io.connect('https://mydomain')
    

    我是否需要说' mydomain:port'或者是' mydomain'足够?

1 个答案:

答案 0 :(得分:0)

这是你使用socket.io

的方法
var http = require('http');
var express = require('express');
var path = require('path');

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

var port = 8081;


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

    socket.on('event1', function (data) {
        console.log(data);
        socket.emit('event2', { msg: 'delivered' });
    });


});


app.listen(port);

回答您的第二个问题

是的,您需要指定正在使用的端口

 <script src="socket.io.js"></script>

 <script>
     var socket = new io.Socket();
     socket.connect('https://mydomain:8081')

     socket.on('your_event',function() {
         console.log('your_event receivid from the server');
     });
 </script>

此处套接字将连接到端口8081

这是一个简单的服务器端代码

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

// Start the server at port 8081
var server = http.createServer();

server.listen(port);


var socket = io.listen(server);

// example listener
socket.on('event_2', function(client){ 
    console.log('event_2 received');
});

// example emitter
socket.emit('event_1', { hello: 'world' });