系统结构是这样的,在服务器上安装了一个系统服务,该系统服务打开了一个SOCKET端口进行监听,在C/S结构下,已经实现了客户端到服务端的连接通讯,现在系统要求跨平台使用,原本系统是跑在WINDOWS平台上,现在需要兼容android系统,我打算加入一个WEB服务,然后通过浏览器在客户端那边使用SOCKET连接到服务程序进行网络通讯,系统是一个实时控制系统,网页上可能就是多个按钮,按下按钮以后发送控制命令,以及状态返回显示。实现这些功能需要哪些技术,请指点一下,最好介绍一下大体方法谢谢
调试欢乐多
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协议
http://blog.csdn.net/xiage/article/details/4528877
还是谢谢这位兄弟
flash的话有两个问题:一个是可能会不支持,另一个是flash与页面的元素之间交互的话涉及到js和as交互,复杂度提高了。
楼主如果还是不明白的话,可以上网搜一下java或者C#之类你熟悉的语言为websocket写服务器端代码。我只会写一些php的
即,用户通过浏览器访问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聊天例子。