mac上搭建openfire服务器一、下载并设置openfire1.到
for
mac版譬喻:Openfire
3.8.1,下载后的文件:openfire_3_8_1.dmg2.点击安装,并实施暗许操作

行使Nodejs是这么简约的贯彻了一个简短的闲谈服务器

var http = require('http');
var fs = require('fs');
http.createServer(function(req,res){
res.setHeader('Access-Control-Allow-Origin','*');
fs.readFile('../data/shuju.json',function(err,data){
if(err == null){
res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'});
res.end(data);
}else{
res.writeHead(404,{'Content-Type':'text/plain;charset=utf-8'});
res.end();
}
})
}).listen(8080);
console.log('服务器启动成功');

自个儿也是小新手一枚,有时候服务器相比较忙,有的数据无法测量检验,程序有时候不恐怕联调,于是乎找到了连带的一部分稿子张开了本机服务器搭建,轻巧上手,话非常少说,初始吧。

tips: 作用:完结多客商访谈服务器
预备:本地html文件(代码普通话件相对路线要基于实际景况改变)
难点:
用select完毕多路复用
对select语句的知情(数据发送完立时关门套接字并移出List)

图片 13.起步openfire服务在系统偏爱设置的任何里,点击openfire偏幸图片 2开发银行后,点击Open
Admin
Console开关,自动在浏览器中开发本地web配置页面
ERROR: 500
INTERNAL_SERVER_E奇骏ROCRUISER本地的域,要安装为127.0.0.13.数据库设置假设要设置外界数据库(推荐,比方:MySQL),选取正式数据库连接图片 34.装置数据库连接图片 4数据库驱动接纳:MySQL,前提是已安装MySQL(英特网可以搜到比较多安装教程,各个情势都不相同样,这里就不一一介绍了)JDBC驱动,暗中同意不变com.mysql.jdbc.Driver

贯彻代码如下:

一、下载一个jar包

#coding=utf-8

from socket import *
import select
import re




#0定义函数:从浏览器的请求数据找出要读的本地文件地址
def findFileAddr(data):

    reResult = re.match(r'GET /(.*)\sHTTP/1.1',data).group(1)
    #如果匹配不到即跳转到默认网址
    if not reResult:
        return './html/index.html'
    else:
        #如果匹配到图片格式就从正则出img文件名,然后在img文件夹中找
        if re.match(r'images/.*\.png',reResult):
            return './html/'+re.match(r'images/.*\.png',reResult).group()
        else:
            return './html/'+reResult



def main():
    #1建立服务器


    serv = socket(AF_INET,SOCK_STREAM)
    serv.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
    loaclAddr = ('',80)
    serv.bind(loaclAddr)
    serv.listen(2)
    print'--------------服务器正在监听中---------------------------'


    #2采用select实现多路复发
    responceHeader = '''HTTP/1.1 200 OK Content-Type:text/html\r\n\r\n'''

    readList = [serv,]

    while True:

        readableList,writebleList,exception = select.select(readList,[],[])

        for temp in readableList:
            if temp == serv:

                newsocket,destAddr = serv.accept()
                print str(destAddr)+'已连接'
                readList.append(newsocket)

            else:

                request = temp.recv(1024)
                if request:
                    #从浏览器发送的请求文件里面找出本地文件地址
                    fileAddr = findFileAddr(request)
                    f = open(fileAddr,'r')
                    sendData = responceHeader+f.read()
                    temp.send(sendData)
                    #发送完立马关掉并移出列表
                    temp.close()
                    readList.remove(temp)
                    print'请求数据已发送'

                else:
                    print'该用户已下线'
                    temp.close()
                    readList.remove(temp)

if __name__ == '__main__':
    main()

数据库UENVISIONL:情势如下:jdbc:mysql://你的主机名:端口号/数据库名称

var net = require('net');

var chatServer = net.createServer(),clientList = [];

chatServer.on("connection",function(client){
  client.name = client.remoteAddress + ":" + client.remotePort;
  client.write("Hi! "+client.name+" \n");
  clientList.push(client);

  client.on("data",function(data){
    //数据发送给客户端
    broadcast(data,client);
    // clientList[i].write(data);
  });

  client.on("end",function(){
    clientList.splice(clientList.indexOf(client),1);
  });

  client.on("error",function(e){
    console.log(e)
  });
});
chatServer.listen(9000)

function broadcast(message,client){
  var cleanup = [];
  for(var i=0;i<clientList.length;i++){
    if(client != clientList[i]){
      if(clientList[i].writable){
        clientList[i].write(client.name = "says:"+message);
      }else{
        cleanup.push[clientList[i]];
        clientList[i].destory();
      }
    }
  }
}

点击链接下载服务器端【moco服务端】

此地设置为jdbc:mysql://localhost:3306/openfire

使用进程就是:

https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.10.2/moco-runner-0.10.2-standalone.jar 

在那之中主机名[host-name]改为localhost,在那之中数据库名称[database-name]改为openfire化解数据库字符编码难题,能够在后头加?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

启动js

二、简单的测量检验

最终的url形式是jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

node chat.js

1.在桌面构建叁个文本夹,将刚刚下载的jar包拖进去

在意:前提是已存在二个名称叫openfire的数据库,不然会报如下错误,连接配置不成事The
Openfire database schema does not appear to be installed. Follow the
installation guide to fix this
error.中期的MySQL数据库计划工作如下:<1>设置/usr/local/openfire文件夹的拜谒权限为可读写方法1:在finder中前往文件夹/usr/local/,右键openfire文件夹,显示简要介绍点击如图右下角中的锁Logo解锁,并安装权限为:可以读写

连日来格局:telnet

2.创制二个json文件

图片 5

telnet 127.0.0.1 9000

图片 6

艺术2:展开终端,输入如下命令sudo chmod 777 /usr/local/openfire

您大概感兴趣的篇章:

  • nodejs落成的三个大约聊天室成效分享
  • 使用Angular和Nodejs、socket.io搭建聊天室及多个人聊天室
  • AngularJS+Node.js完毕在线聊天室
  • WebSocket+node.js创立即时通讯的Web聊天服务器
  • Node.js中使用socket创制私聊和公聊聊天室
  • 利用Meteor合作Node.js编写实时聊天应用的典范
  • 依据Node.js +
    WebSocket塑造即时聊天程序嗨聊
  • Node.js制作简便聊天室
  • Node.js利用Net模块达成多个人命令行聊天室的点子
  • Nodejs之TCP服务端与顾客端聊天程序详解

testServe

内部777代表授权可读写权限,000代表无访谈权限<2>在巅峰中,登入MySQLmysql
-u root -p

在teseServe.json文件中写入

然后输入数据库的root密码<3>创建数据库openfirecreate database
openfire;

【注意不要使用文本编辑器展开编辑,会有号子不识别在运维的时候程序会报错,请使用XCode展开编辑】

<4>导入openfire能源文件夹 resources/database下的数据表

[  { “response”:{      “context”:”First Blood!”}}]

use openfire;

3.展开终端输入以下命令

source /usr/local/openfire/resources/database/openfire_mysql.sql

cd  /Users/bean/Desktop/testServe      【张开文件夹】

java -jar moco-runner-0.10.2-standalone.jar start -p 8080 -c
testServe.json

【注意:8080是端口号,能够随性所欲定义数字】

在终极出现一排导入进程

4.极端就拜望到如下窗口就表示成功了

图片 7

图片 8

<5>刷新权限flush privileges;

8080

<6>退出MySQLexit

5.用浏览器打开 
http://localhost:8080/

顾客名和密码这里的顾客名密码,是访问MySQL数据库时使用的帐号:root,和装置MySQL设置的root密码5.天性设置纵然不希图动用LDAP,则保持私下认可设置

来得如下图

图片 9

图片 10

6.安装openfire服务器助理馆员的帐号和密码

First Blood

图片 11能够不管填写贰个管理员邮箱,输入要安装的密码达成注册图片 12

三、Get请求

7.登录管控台(假若可今后数据库里插入客商不过在客商摘要却尚无数量,那是因为openfire的数据库驱动包太旧了,而设置的数据库太新了,把openfire里的驱动包换成新的就行了,路线:/usr/local/openfire/lib)暗许的协会者帐号是“admin”,暗许管理员密码“admin”,假若下边安装了新密码,则助理馆员密码是新密码

修改一下刚刚的json里面包车型地铁原委

图片 13

[

{  “response”:{“context”:”First Blood!”}},

{  “request”:{ “method” :”get”, “uri”:”/getTest”}, 

“response”:{ “context”:”First Get!”}

}

]

若果想去掉私下认可的admin帐号,并自定义,必要如下操作

在浏览器里输入http://localhost:8080/getTest

在巅峰中,登录具体的数据库

图片 14

mysql -u root -p openfire

First Get

下一场输入数据库的root密码

request 请求

删除表“ofUser”中的admin帐户

有16个定点的属性:

delete from ofUser where username=’admin’;

method,headers,json,factory,uri,text,cookies,xpaths,

始建自定义管理员(顾客名:xiaodao,密码:123)

json_paths,version,file,queries,path_resource,forms。

INSERT INTO ofUser (username, plainPassword, encryptedPassword, name, email, creationDate, modificationDate) VALUES ('xiaodao','123','123','Administrator','xiaodao@sunyard.com','0','0');

自然要鲁人持竿这个点子。

在意:固然重设了顾客名,必需重启openfire服务器

常用的method(央求格局),headers(heads参数),uri(url地址),file(钦定调用的乞请文件),queries(央求带参),forms(表单内容)。

图片 15

response 响应

8.后台调整分界面

有10个确定地点属性:

图片 16

status,attachment,headers,version,factory,file,text,proxy,cookies,json,latency,path_resource。

三、卸载openfire1.甘休服务在系统偏疼设置的别的里,展开openfire偏心设置

四、带参数的形式

图片 2

同理修改json文件

点击Stop Openfire开关,甘休服务

{“request”:

{“uri”:”/getTestWithParams”,

“queries”:{  “param1″:”1”,  “param2″:”2”}

}, 

“response”:{ “text”:”This is a method with params!”}

}

图片 18

浏览器输入链接http://localhost:8080/getTestWithParams?param1=1&param2=2

五、Post请求

修改json

{    “request”:{ “method” :”post”,        “uri”:”/postMethod”,       
“headers” :{            “content-type” :”application/json”,           
“sessionid”:”e566288ba77de98d”},        “forms” :{          “name”
:”zhangsan”,          “password” :”123456″}},    “response”:{       
“text”:”This is a POST Method!”}}

使用AFNet请求。

上面给大家一个纵横交叉的例证,供给的能够自行下载,轻便的一些操作已经基本做到,下边已经主导满意测量试验供给,只须求每便修改json文件保留就能够。

感谢Airfei
最早的小说链接 

Demo地址:https://github.com/BeanMan/testServe 

才疏学浅,还望大神们讨论指正,诚心接受;

菜鸟走向大牌,我们共同前进,假诺感到不错,请给个赞/关心。

联机交换学习,有毛病随时迎接联系,邮箱:383708669@qq.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图