系统结构是这样的,在服务器上安装了一个系统服务,该系统服务打开了一个SOCKET端口进行监听,在C/S结构下,已经实现了客户端到服务端的连接通讯,现在系统要求跨平台使用,原本系统是跑在WINDOWS平台上,现在需要兼容android系统,我打算加入一个WEB服务,然后通过浏览器在客户端那边使用SOCKET连接到服务程序进行网络通讯,系统是一个实时控制系统,网页上可能就是多个按钮,按下按钮以后发送控制命令,以及状态返回显示。实现这些功能需要哪些技术,请指点一下,最好介绍一下大体方法谢谢

解决方案 »

  1.   


    if (window.WebSocket) { 
    var ws = new WebSocket("ws://localhost:8080/WebSocketDemo/counter-socket"); 
    ws.onmessage = function(e) { 
    var msg = e.data; 
    };  ws.onclose = function() { 
    };  ws.onopen = function() { 
    ws.send("Hello, Server!"); 
    }; 
    }else{
    alert('浏览器不支持websocket');
    }开始的时候是http协议,服务器返回特定的header之后才会升级为socket长连接。
    http://code.google.com/p/phpwebsocket/
    这里是一个php实现的websocket协议,其中的$upgrade变量是要返回给html页面的header,页面接到这个header之后就讲http协议升级成websocket协议
      

  2.   

    有个思路可以使用Flash来和server建立连接.
    http://blog.csdn.net/xiage/article/details/4528877
      

  3.   

    谢谢兄弟,但还有不明白的地方,就是在网页里加入这些代码以后,服务器需要做什么支持么?我对WEB开发是门外汉。
      

  4.   

    如果引入这个技术的话,后期是否会带来问题?Adobe已经宣布不再对移动设备做FLASH开发了。
    还是谢谢这位兄弟
      

  5.   

    监听上面的 ws:// 协议的端口,然后建立链接之后返回我给你的链接中的 $upgrade 变量后面的那一串字符串就可以了(php中字符串的连接符号是"."点号)。
    flash的话有两个问题:一个是可能会不支持,另一个是flash与页面的元素之间交互的话涉及到js和as交互,复杂度提高了。
    楼主如果还是不明白的话,可以上网搜一下java或者C#之类你熟悉的语言为websocket写服务器端代码。我只会写一些php的
      

  6.   

    我这么理解是否正确,首先我用IIS或者其他WEB服务程序搭建一个站点,然后建立一个页面,页面中包含你提供的那个JScript,然后我用C写一个服务,监听那个端口,当客户端访问该页面的时候,JScript会被执行,那么就发起了连接,连接过来以后,我发送那个构造的字符串,这个时候客户端的网页代码中的WS是否就直接可以跟我用C写的服务进行通讯了?还是需要其他服务程序来支持?
      

  7.   

    是这个样子的。
    即,用户通过浏览器访问web页面,页面中的javascript执行,打开websocket连接到socket服务器,socket回应一个升级协议(被成为websocket握手),就是那段字符串,浏览器接收到之后建立长连接,然后就可以实现双向双工通信。
    http://www.kindcent.com/blog/view/vc-plus-plus-websocket-handshake 这里在网上帮你搜了一个C++实现的websocket握手,希望能帮到你。
    WebSocket是 html5 的一部分,Android系统自带的浏览器是支持html5的 所以可以通过这个实现socket。但是如果考虑Android上其他浏览器,比如UC浏览器、IE手机版之类的,就不支持html5了,也就是说,如果需求里面要求考虑兼容性的话,楼主可能就要考虑用多种实现了。
    目前电脑上的兼容性处理方案是,优先考虑websocket,若不支持,则添加flash,使用flash的socket,若还不支持,则采用ajax推送stream,若还不支持,则用ajax轮询。
    这个方面的话,有个框架做的比较好,叫nodejs,其中有个模块叫socket.io,为开发者做好了兼容性处理,开发者只需要编码就可以了。
    http://nodejs.org/
    http://socket.io/
    其中第一个网站左侧的demo链接就是一个socket聊天例子。