基于网络聊天室的社交游戏 -- nodejs、express、socket.io-server

系列博文的传送门:http://www.cnblogs.com/lastpairs/p/6993237.html

客户端代码github地址 https://github.com/xxyjskx1987/lastpairswebapp

服务器端代码github地址 https://github.com/xxyjskx1987/lastpairsnodeserver

项目演示地址 http://www.tanmiba.com/

后端采用express进行搭建,express的使用方式如下

var express = require(‘express‘);

var app = express();

//设置跨域请求的域名
app.all(‘*‘, function(req, res, next) {
  res.header("Access-Control-Allow-Credentials", "true");
  res.header("Access-Control-Allow-Origin", "");
  next();
});

//设置监听端口
app.set(‘PORT‘, 3000);
var server = app.listen(app.get(‘PORT‘),function(err){
  if(err){
    console.error(‘server error:%s‘,err && ess.message);
    return;
  }
  console.log(‘server listening at :::‘,app.get(‘PORT‘));
});

在express中使用socket.io,并且通过域名限制ws连接,模拟跨域

var io = require(‘socket.io‘)(server);

//通过域名限制ws连接
 io.origins((origin, callback) => {
   if (origin !== ‘http://www.tanmiba.com‘) {
     return callback(‘origin not allowed‘, false);
   }
   callback(null, true);
 });

//使用socket.io
io.sockets.on(‘connection‘, function (socket) {
  console.log("connection");

  socket.on(‘commonsay‘,function(data){
    console.log("commonsay:" + data);
    //广播
    io.sockets.emit(‘commonsay‘, data);
  });

  socket.on(‘disconnect‘,function(){
    console.log("disconnect");
  });
});

express中对session的简单使用

var session = require(‘express-session‘);

app.use(session({
    resave: false,
    saveUninitialized: true,
  secret:‘recommand 128 bytes random string‘,
  cookie:{maxAge:60*1000*1000}
}));
时间: 2024-10-07 06:13:23

基于网络聊天室的社交游戏 -- nodejs、express、socket.io-server的相关文章

基于网络聊天室的社交游戏 -- vue、socket.io-client

系列博文的传送门:http://www.cnblogs.com/lastpairs/p/6993237.html 客户端代码github地址 https://github.com/xxyjskx1987/lastpairswebapp 服务器端代码github地址 https://github.com/xxyjskx1987/lastpairsnodeserver 项目演示地址 http://www.tanmiba.com/ socket.io在BS架构的即时通信工具中,可以说是不二选择,本例在

基于网络聊天室的社交游戏 -- vue、axios

前一篇系列博文的传送门:http://www.cnblogs.com/lastpairs/p/6993237.html 客户端代码github地址 https://github.com/xxyjskx1987/lastpairswebapp 服务器端代码github地址 https://github.com/xxyjskx1987/lastpairsnodeserver 项目演示地址 axios,建议在vue2.0替换resource的开发组件,用于请求资源. 安装axios npm insta

NodeJS+Express+Socket.io的一个简单例子

初始化一个NodeJS web应用: 打开CMD窗口. 运行cmd:"mkdir myapp",新建一个文件夹,名为myapp. 运行cmd:"cd myapp",切换到文件夹myapp. 运行cmd:"npm init",创建文件package.json. 3.Express入门应用: 在上面的CMD窗口运行cmd:"npm install express --save", 安装"express" nod

基于java网络聊天室---前言

很久之前做的一个东西,现在拿出来整理一下放在自己的博客中! 一. 设计目的 随着人互联网的发展,人和人之间的沟通方式也越来越便捷和多样化,在线聊天工具已经成为人们生活中够通不可缺少的部分,在学习完 java网络编程课程,如果能开发一款属于自己的聊天工具,和好友进行私密对话,则是一件令人兴奋的事.同时,安全可靠的TCP这两种 通信协议,是非常重要的内容,值得研究. 二. 设计内容 本聊天室程序基于C/S模式,聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需登陆

基于linux的TCP网络聊天室设计与实现

利用Linux实现基于TCP模式的网络聊天程序 主要完成的两大组成部分为:服务器和客户端. 服务器程序主要负责监听客户端发来的消息. 客户端需要登录到服务器端才可以实现正常的聊天功能.该程序是利用进程以及共享内存来实现群发送消息的. 以下简单分析一下服务器端和客户端两个方面所要完成的任务. 服务器的主要功能如下: 在特定的端口上进行监听,等待客户端的连接. 用户可以配置服务器端的监听端口. 向连接的客户端发送登录成功信息. 向已经连接到服务器的客户端的用户发送系统消息. 使用TCP多线程并发服务

网络聊天室

1网络聊天室项目描写叙述 1.1功能描写叙述 MyQQv1採用C/S模式,构建网络聊天室,详细实现功能: A.能显示在线用户列表 B.能在聊天室里进行群聊天 C.能指定用户进行私聊 D.某用户下线.其它用户能接到提示 1.2所需技术 MFC,Socket套接字,TCP/IP协议.动态数组,CString字符串拼接与拆分 2网络聊天室执行流程图 2.1server执行流程图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fo

TWaver html5 + NodeJS + express + websocket.io + redis 快速搭建项目(一)

最近看到TWaver 的html5版本即将发布了,于是今天用TWaver HTML5 + NodeJS + express + websocket.io + redis搭建了一个简单原型.先发出几张效果图给大家尝尝鲜.界面添加.修改以及删除网元后,会自动增量存库,并广播更新. 看看这个广播实现的效果,可以在手机上接受任何操作: 最后再来个告警广播的效果图 在后续的文章中会给大家详细的讲解具体技术的实现.

基于java网络聊天室--客户端

ChatClient.java 包含名为ChatClient的public类,其主要功能为定义客户端的界面,添加时间监听与事件处理.该类定义了Connect()与DisConnect()方法实现与客户端的连接与断开连接.当登陆到指定的服务器时,调用ClientReceive类实现消息收发,同时该类还定义了SendMessaga()方法来其他用户发送带有表情的消息或悄悄话. 1 /* 2 * To change this license header, choose License Headers

基于java网络聊天室--服务器端

服务器端: ChatServer.java 包含名为ChatServer的public类,其主要功能为定义服务器端的界面,添加时间监听与时间处理.调用ServerListen类来实现服务端用户上线与下线的监听,调用ServerListen来实现服务器端的消息收发. 1 package com.silianbo.server; 2 3 import com.silianbo.CaptureScreen; 4 import java.awt.BorderLayout; 5 import java.a