我有一些关于为我的node.js应用程序配置socket.io的问题。
当需要var socket = require('socket.io')( /* HERE */ )
时,是否需要输入我的服务器侦听/* HERE */
所在位置的端口?
在上面一行的下方,我有另一个require函数,用于包含一些常量和函数的.js文件(见下文)。当我尝试引用' socket'在该文件中,它说它未定义。但是由于这一行低于上面看到的socket.io中间件的需求行,为什么它会说' undefined'?
const numbers = '1234'
function asd(req,res,next) {
socket.emit('a')
}
module.exports = {
asd
}
为了配置客户端socket.io,我添加了这一行:
var socket = io.connect('https://mydomain')
我是否需要说' mydomain:port'或者是' mydomain'足够?
答案 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' });