[英]Using Socket.IO in server side with socket.io-client
我在我的app.js中使用socket.io并使用express框架对其进行配置,现在当我运行该应用程序时,application和socket.io都将启动,并且我可以在客户端和app.js之间发出消息。
app.js(服务器)
var express = require('express'),
app = express(),
http = require('http'),
server = http.creatServer(app),
socket = require('socket.io'),
io = socket.listen(server);
server.listen(3000);
io.sockets.on('connection', function(client){
client.on('message', function(msg){
io.sockets.emit('message', msg);
});
});
客户:
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
var server = io.connect('http://127.0.0.1:3000');
server.emit('message', 'Hello World');
</script>
但是我想在其他控制器中使用套接字...我使用“ socket.io-client( https://npmjs.org/package/socket.io-client )”,现在我想获取从应用程序发出的消息。 js到所有套接字。
controller.js(服务器)
var io = require('socket.io-client'),
socket = io.connect('127.0.0.1', {
port: 3000
});
socket.on('connect', function(){
console.log('CONNECTED!!');
socket.on('message', function(msg){
console.log("New message:", msg);
});
});
它无法连接!
如果您不在乎谁收到消息,则可以从socket.io进行全局广播。 在控制器内部工作。
您没有使用客户端套接字发出。 io是socket.io实例,而不是连接的客户端套接字。
在服务器中
io.sockets.on('connection', function(client){
client.on('message', function(msg){
client.emit('message', msg);
});
});
如果需要广播,则可以使用io实例
io.socket.sockets.emit('message', msg);
var io = require('../socket/sio').initialize(server);
app.set('socketio', io)
并在您的控制器中:
var io = req.app.get('socketio');
io.to(socketId).emit('sendData', data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.