前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Socket.IO + Express实现的跨浏览器、子域的聊天室

Socket.IO + Express实现的跨浏览器、子域的聊天室

作者头像
meteoric
发布2018-11-16 16:46:00
9330
发布2018-11-16 16:46:00
举报
文章被收录于专栏:游戏杂谈游戏杂谈

实例中用到了(实例在Windows XP下运行):Node.jsSocket.IOExpress.jsjadestylus

先在hosts文件中添加两行规则,关于两个子域的:sub1.localhost、sub2.localhost

使用socket.io

代码语言:javascript
复制
1: var exp = require('express');

       2: var app = exp.createServer();

       3:  

       4: global.socket = require('socket.io').listen(app);

       5: global.socket.set('log level', 1);

       6: global.socket.set('transports', [ 'websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']);

加载配置,创建子域的应用

代码语言:javascript
复制
1: app.use(exp.vhost('sub1.' + global.host, require('./subdomains/sub1')));

       2: app.use(exp.vhost('sub2.' + global.host, require('./subdomains/sub2')));

       3:  

       4: require('./app/config')(app, exp);

       5: require('./app/server/router')(app);

       6: require('./app/server/modules/chat-socket');

chat-socket.js模块

代码语言:javascript
复制
1: module.exports = function() {

       2:         

       3:     global.socket.of('/chat').on('connection', function(socket) { 

       4:        //todo 

       5:     });

       6: }();

前台页面使用socket.io.js建立连接

代码语言:javascript
复制
1: socket = io.connect('/chat');

       2: socket.on('status', function (connections) {

       3:     

       4: });

       5: socket.on('user-ready', function (data) {

       6:     

       7: });

       8: socket.on('user-message', function (data) {

       9:     

      10: });

      11:  

      12: socket.on('user-disconnected', function (data) {

      13:     

      14: });

      15:  

      16: //向后台发送消息

      17: socket.emit('user-ready', {name : 'xxx'});

运行完整的示例node app.js即可,下载示例源码>>

本文参考:

1、http://www.quietless.com/kitchen/building-a-node-js-chat-application-and-sharing-socket-io-across-multiple-subdomains/

2、creating-a-basic-site-with-node-and-express

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-07-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档